ios – NSNumberFormatter在设备上返回nil,而不是在模拟器上

ios – NSNumberFormatter在设备上返回nil,而不是在模拟器上,第1张

概述我使用NSNumberFormatter将用户输入转换为NSNumber(十进制数),我使用ARC. NSNumberFormatter *f = [[NSNumberFormatter alloc] init];[f setNumberStyle:NSNumberFormatterDecimalStyle];[f setMaximumFractionDigits:1];_myNumber 我使用NSNumberFormatter将用户输入转换为NSNumber(十进制数),我使用ARC.

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,而不是在模拟器上所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存