如何处理整数,NSStrings和NSNumberFormatter的最佳方法是什么?
我有一个带有UITextField的应用程序,用户可以在其中输入数字。通过UITextField中的每次更改,我的应用程序立即获取输入,将其放入我的计算函数中,并将结果输出到UILabel中。
人们可以在这里使用大数字,所以为了让他们更容易阅读他们的输入,我决定让它成为可能,以便输入在插入后立即改变。
例如,当您键入1000时,它会自动更改为1,000。当您输入100000000000时,它会自动更改为100,000,000,000等。
我能做到这一点,就像这样:
formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
self.inputField.text = [formatter stringFromNumber:[formatter numberFromString:self.inputField.text]];
也许不是最好的方式,但它有效。
我的函数需要一个int作为输入,所以直到999它很容易:我可以执行以下操作:
[self.inputField.text integerValue];
并且有效
但是每当我的UITextField中有1000或更高时,self.inputField.text属性将为1,000 ..然后使用integerValue就会出错。
所以我的问题是,如果有小数,我怎样才能从NSString返回到int?
答案 0 :(得分:2)
使用-numberFromString函数从字符串中获取NSNumber,然后使用NSNumber类中的intValue来获取整数值:
NSString *string = @"1,000";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *number = [formatter numberFromString:string];
int intValue = [number integerValue];// intValue = 1000