我按照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 €"];
你如何应对这个?
答案 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!