iPhone NSNumberFormatter setFormat:

时间:2009-01-06 10:28:16

标签: iphone cocoa-touch nsnumberformatter

好像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: **

1 个答案:

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