NSNumberFormatter *f = [[NSNumberFormatter alloc] init];[f setNumberStyle:NSNumberFormatterDecimalStyle];[f setMaximumFractionDigits:1];_myNumber = [f numberFromString:myTextFIEld.text];
有时这会导致_myNumber为零.即使我绝对确定用户输入的是正确的十进制数(我在调试期间检查过).
为了完整性:_myNumber是VIEwController的综合属性.
这仅在设备上运行应用程序时发生,而不是在我在模拟器中运行时.
正在使用的键盘是’Decimal Pad’
在代码的不同部分,在不同的VIEwController中,代码确实有效.
我现在有一个解决方法,我在上面的代码下面添加了:
if (!myNumber){ myNumber = [NSNumber numberWithfloat: myTextFIEld.text.floatValue];}
有人知道为什么NSNumberFormatter可以返回nil,即使调用[NSNumber numberWithfloat:myTextFIEld.text.floatValue]有效吗?
解决方法 在我的例子中,解决方案是将NSNumberFormatter的“decimalSeparator”设置为“.”,例如:NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init];formatString.decimalSeparator = @".";总结
以上是内存溢出为你收集整理的ios – NSNumberFormatter在设备上返回nil,而不是在模拟器上全部内容,希望文章能够帮你解决ios – NSNumberFormatter在设备上返回nil,而不是在模拟器上所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)