iPhone NSNumberFormatter setFormat:

11

似乎NSNumberFormatter的设置自定义格式器的方法setFormat:在iPhone上不可用...

因此,这会导致我的应用程序崩溃:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setFormat:@"#,##0.0M"];

有其他人遇到过这个问题吗?

谢谢,

Dan **下面已回答。 NSNumberFormatter 还有称为 setPositiveFormat:setNegativeFormat: 的方法,替换了被弃用的 setFormat: **

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
9
是的,它在NSNumberFormatter Class Reference(需要登录)中作为注释记录下来。注释如下:

iPhone OS注意:iPhone OS仅支持现代10.4+行为。在iPhone OS上不可用10.0风格的方法和格式字符串。

编辑:添加更多文本以支持后续问题。

您可以将自己的重写为类似的内容:

NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setPositiveSuffix:@"M"];
[lengthFormatter setNegativeSuffix:@"M"]; // assuming it can go negative

我建议您查看我上面链接的文档。它专门针对NSNumberFormatter的iPhone版本,因此其中没有任何会导致应用程序崩溃的方法。它还旨在更充分地利用用户的本地设置,比原始的NSNumberFormatter更好用。有一些方法可以限制显示内容等,同时仍然利用用户的偏好。不幸的是,现在没有setFormat:方法了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,