мое первое приложение для iPhone, и я застрял - PullRequest
0 голосов
/ 28 февраля 2010

Я решил дать толчок развитию этого приложения для iPhone. чтобы помочь добавить перспективу к этому, я никогда не программировал ни в какой форме C, ни для чего-либо на Mac, кроме Applescript. Я создал множество решений, используя смеси Applescript, Classic ASP, Perl и даже PostScript. я дома сварен, так что я не понимаю все мои вещи из Obj.xyz.blah.blee, извините; - /

мне нужно ... 1) взять данные с поля 2) преобразовать его в число с плавающей точкой 3) сделать математику 4) затем выведите результаты в метку

Я получил версию этой работы, в которой я извлекаю текст из поля и помещаю результаты в метку после нажатия кнопки «Рассчитать», это было легко. так что я знаю, что пункты 1 и 4 хороши. теперь самое сложное ...

Я установил начальную версию, чтобы гарантировать, что я могу выполнять пункты 3 и 4, устанавливая мои переменные с плавающей запятой как статические биты данных ...

float float_DiameterA, float_DiameterB;
float myR1, myR2;

float_DiameterA = 20;
float_DiameterB = 5;

myR1=(float_DiameterA-float_DiameterB)/2;
myR2=1;

r1.text=[[NSNumber numberWithFloat:myR1] stringValue];
r2.text=[[NSNumber numberWithFloat:myR2] stringValue];
a1.text = txtLength.text;

результаты: r1 отображает «7,5», а r2 отображает «1». это прекрасно работает, НО мне нужно взять txtDiameterA.text и поместить его в float_DiameterA в качестве плавающей запятой.

вот что я пробовал на шаге 2 ...

str_DiameterA = [txtDiameterA.text text];
float_DiameterA = [[str_DiameterA text] floatValue];

но это не сработало; - /

Я даже пробовал несколько версий if (EOF == sscanf (str_DiameterA, "% f", & float_DiameterA)) { //ошибка };

и

float_DiameterA = sscanf(txtDiameterA.text, "%f", &f);

но ни один из них не сработал. я думаю, что именно тогда я начал понимать, что это не C ++, как я думал, что это было LOL ...

думаю, вы уже поняли идею.

так ...

как вы берете ввод из txtDiameterA.text и конвертируете в float? пожалуйста, не говорите мне использовать Root Beer вместо Cola lol.

о, вот еще немного информации, которая может оказать некоторое влияние ...

часть моего .h файла

IBOutlet UITextField *txtDiameterA;
IBOutlet UITextField *txtDiameterB;

IBOutlet UILabel *r1;
IBOutlet UILabel *r2;

Я разработал свой интерфейс с помощью Interface Builder.

СПАСИБО ОГРОМНОЕ ЗА ВАШУ ПОМОЩЬ !!! ; -)

1 Ответ

2 голосов
/ 28 февраля 2010

txtDiameterA - это UITextField . Глядя на документы, мы видим, что атрибут 'text' UITextField возвращает NSString

В NSString есть прекрасный метод с именем floatValue, который возвращает представление строки с плавающей точкой!

Итак,

NSString *diameter = txtDiameterA.text;
float diameterAsFloat = [diameter floatValue];

возвращает значение в текстовом поле в виде числа с плавающей запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...