Приведите значение Objective C UITextField для плавания - PullRequest
2 голосов
/ 08 февраля 2010

У меня есть UITextField с именем txtDiscount В нем есть значение: txtDiscount.text == 2.3 // например

Я пробовал:

float test = (NSNumber *)txtDiscount.text;

И он компилируется, но во время выполнения ломается.

Недопустимый тип значения для атрибута: свойство = ... "; требуемый тип = NSNumber; заданный тип = NSCFString; значение =.

Как я могу привести значение?

Любая помощь с благодарностью, Спасибо //:)

Ответы [ 2 ]

4 голосов
/ 08 февраля 2010

Вы, вероятно, хотите что-то вроде:

float test = [txtDiscount.text floatValue];

Документация NSString содержит список всех встроенных приведений.

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

В ролях вот так

(NSNumber *)myInstance

говорит компилятору обрабатывать myInstance, как если бы он был экземпляром класса NSNumber. Это может повлиять на время компиляции предупреждений и ошибок. Примечание: - компилятор. Это не имеет никакого значения для кода, который генерируется или выполняется - вообще. Код, который вы используете, по-прежнему

float test = [txtDiscount text];

где метод -text возвращает указатель на строку NSString, и вы пытаетесь присвоить ее переменной с плавающей запятой.

см. Ответ Кли, как получить значение с плавающей запятой из строки NSString, но убедитесь, что вы понимаете, почему то, что вы пытались сделать, неверно Это поможет нагрузкам в долгосрочной перспективе.

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