Bra*_*das 4 null decimal nsnumberformatter ios
我使用NSNumberFormatter将用户输入转换为NSNumber(十进制数),我使用ARC.
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setMaximumFractionDigits:1];
_myNumber = [f numberFromString:myTextField.text];
Run Code Online (Sandbox Code Playgroud)
有时,这会导致_myNumber要nil.即使我绝对确定用户输入的是正确的十进制数(我在调试期间检查过).
为了完整性:_myNumber是ViewController的综合属性.这仅在设备上运行应用程序时发生,而不是在我在模拟器中运行时.使用的键盘是'Decimal Pad'在不同的代码段中,在不同的ViewController中代码可以正常工作.
我现在有一个解决方法,我在上面的代码下面添加了:
if (!myNumber){
myNumber = [NSNumber numberWithFloat: myTextField.text.floatValue];
}
Run Code Online (Sandbox Code Playgroud)
有人知道为什么NSNumberFormatter可以返回nil,即使在调用时也是如此[NSNumber numberWithFloat: myTextField.text.floatValue]?
小智 7
在我的例子中,解决方案是将NSNumberFormatter的"decimalSeparator"设置为".",例如:
NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init];
formatString.decimalSeparator = @".";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |