好像NSNumberFormatter's
方法设置自定义formatters
。 iPhone上没有setFormat:
...
这样......崩溃我的应用程序:
NSNumberFormatter *lengthFormatter = [[NSNumberFormatter alloc] init];
[lengthFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[lengthFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[lengthFormatter setFormat:@"#,##0.0M"];
这是否发生在其他人身上?
谢谢,
丹
**以下答案。 NSNumberFormatter
还有名为setPositiveFormat: setNegativeFormat:
的方法,用于替换折旧的setFormat:
**
答案 0 :(得分: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:
方法。