将Objective C UITextField值转换为float

时间:2010-02-08 11:10:50

标签: objective-c casting uitextfield

我有一个名为txtDiscount的UITextField 它有一个值:txtDiscount.text == 2.3 //例如

我试过了:

float test = (NSNumber *)txtDiscount.text;

它编译,但在运行时崩溃。

  

属性的值不可接受的类型:property = ...“; required type = NSNumber;给定type = NSCFString; value =。

如何投射价值?

任何帮助非常感谢, 谢谢// :))

2 个答案:

答案 0 :(得分:4)

您可能需要以下内容:

float test = [txtDiscount.text floatValue];

NSString文档提供了所有内置强制转换的列表。

答案 1 :(得分:2)

像这样的演员

(NSNumber *)myInstance

告诉编译器将'myInstance'视为类NSNumber的实例。这可能会影响编译时警告和错误。注意: - 编译器。它对生成或运行的代码没有任何影响。您正在运行的代码仍然是

float test = [txtDiscount text];

其中method -text返回指向NSString的指针,并且您尝试将其分配给float变量。

请参阅clee关于如何从NSString获取浮点值的答案 - 但请确保您理解为什么您尝试做的是错误的。从长远来看,它将有助于加载。