【问题标题】:iPhone NSNumberFormatter setFormat:iPhone NSNumberFormatter 设置格式:
【发布时间】:2009-01-06 10:28:15
【问题描述】:

似乎NSNumberFormatter's 方法用于设置自定义formatterssetFormat: 在 iPhone 上不可用...

所以这...崩溃了我的应用程序:

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

其他人也遇到过这种情况吗?

谢谢,

丹 **在下面回答。 NSNumberFormatter 也有称为 setPositiveFormat: setNegativeFormat: 的方法,它替换了已弃用的 setFormat: **

【问题讨论】:

    标签: iphone cocoa-touch nsnumberformatter


    【解决方案1】:

    是的,它作为注释记录在 NSNumberFormatter Class Reference 中(需要登录)。注释说:

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

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

    你可以重写你的类似的东西:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多