Apple文档“数据格式指南”中的NSNumberFormatter错误

时间:2011-02-07 15:02:05

标签: iphone objective-c ios ios4

我按照Apple开发者网站上的“Data Formatting Guide”进行操作:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setFormat:@"0.00%;0.00%;-0.00%"];
NSNumber *four = [NSNumber numberWithFloat:4.0];
NSLog(@"%@", [numberFormatter stringFromNumber:four]);

但它引发了一个例外:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNumberFormatter setFormat:]: unrecognized selector sent to instance 0x59359b0'

该文件最后一次更新于2009年,所以我不会责怪这一点。我的问题是:你如何处理这个错误?

编辑问题

如何在NSNumber上指定格式?如何将字符串解析为数字,将数字解析为字符串?如何指定Apple向我们指出的模式in a document。我在谈论iPhone编程。谢谢大家!

再次编辑

让我们概括一下我的问题:如果你看一下at the patterns,假设我有一个字符串“1 234,57€”(链接中的最后一个),我想将这个字符串解析为一个数字,我需要将格式指定为:“###0.00¤”,但现在对于iPhone应用程序,正如两个人建议的那样,没有setFormat:方法。

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setFormat:@"# ##0.00 ¤"];
NSNumber *dollars = [numberFormatter numberFromString:@"1 234,57 €"];

你如何应对这个?

2 个答案:

答案 0 :(得分:3)

您正在查看的链接适用于Mac,而非iOS NSNumberFormatterReference

试试这个:

[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];

答案 1 :(得分:0)

看起来NSNumberFormatter类上没有setFormat:方法(即使它已经遍布the documentation了!)

尝试使用setPositiveFormat:方法吗?


虽然看看你的示例问题,但这可能会更好:

NSLog(@"%f", 4.0f);

或者,如果您想将其存储在字符串中:

NSString *myString = [NSString stringWithFormat:@"%f", 4.0f]; // You might need to retain this!

查看string formatting guide