如何将UITextField的值转换为NSNumber?

时间:2010-07-02 15:17:23

标签: iphone cocoa-touch

iPhone SDK存在一个小问题。我的xib有4个值,4 UITextField s我插入主机名,描述,名称和PORT。
端口是NSNumber。我必须将文本(UITextField)转换为NSNumber,但我不知道如何。 我尝试了以下方法:

NSNumber *temp = [[NSNumber alloc] initWithString:portTextField.text];
serverObj.port = temp;

但我的应用程序崩溃了。我对NSString(描述ecc。)

没有问题

3 个答案:

答案 0 :(得分:10)

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:textField.text];
[f release];

这应该可以完成工作。

答案 1 :(得分:6)

只需使用NSString的' integerValue '方法,即可获得' NSInteger '。然后你可以从它创建一个NSNumber对象。

serverObj.port = [ NSNumber numberWithInteger: [ portTextField.text integerValue ] ];

答案 2 :(得分:3)

没有名为initWithString的NSNumber对象的方法:(这就是你的应用程序崩溃的原因)。您需要使用NSNumberFormatter的方法numberFromString: