似乎 NSNumberFormatter的方法用于设置自定义 formatters 。 iPhone上没有 setFormat: ...

这样......崩溃我的应用程序:

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

这是否发生在其他人身上?

谢谢,

丹 **以下答案。 NSNumberFormatter 还有名为 setPositiveFormat:setNegativeFormat:的方法,它们取代了折旧的 setFormat: **

有帮助吗?

解决方案

是的,它记录在 NSNumberFormatter类参考(需要登录)。说明说:

  

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:方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top