【问题标题】:NSNumberFormatter not returning nilSymbol on nil value. What am I missing?NSNumberFormatter 没有在 nil 值上返回 nilSymbol。我错过了什么?
【发布时间】:2011-04-26 22:19:38
【问题描述】:

iOS 4+;当我将 nil 值传递给我的 NSNumberFormatter 时,我想要设置的 nil 符号 (NSString *) 作为回报。它适用于“零”符号,但不适用于零符号。我尝试了许多不同的配置设置,例如行为、分组等。

fmtr = [[NSNumberFormatter alloc] init];

[fmtr setNumberStyle:NSNumberFormatterDecimalStyle];

[fmtr setFormatterBehavior:NSNumberFormatterBehaviorDefault];

[fmtr setUsesGroupingSeparator:NO];

[fmtr setNilSymbol:@"###"];

[fmtr setZeroSymbol:@"0000"];

           
NSLog(@"[fmtr nilSymbol]=>>%@<<", [fmtr nilSymbol]);

NSLog(@"[fmtr stringFromNumber:nil]=>>%@<<  this should be '###", [fmtr stringFromNumber:nil] );

NSLog(@"[fmtr stringFromNumber:0]=>>%@<<", [fmtr stringFromNumber:[NSNumber numberWithInt:0]] );

NSLog(@"[fmtr stringFromNumber:null]=>>%@<<", [fmtr stringFromNumber:NULL] );

NSLog(@"[fmtr numberFromString:nil]=%@", [fmtr numberFromString:nil] );

NSLog(@"[fmtr numberFromString:@\"0\"]=%@", [fmtr numberFromString:@"0"] );

NSLog(@"[fmtr numberFromString:NULL]=%@", [fmtr numberFromString:NULL] );

这是测试的输出:

[fmtr nilSymbol]=>>###

[fmtr stringFromNumber:nil]=>>(null)

[fmtr stringFromNumber:0]=>>0000

[fmtr stringFromNumber:null]=>>(null)

[fmtr numberFromString:nil]=(null)

[fmtr numberFromString:@"0"]=0

[fmtr numberFromString:NULL]=(null)

【问题讨论】:

    标签: iphone objective-c ios nsnumberformatter


    【解决方案1】:

    我不确定为什么在使用 numberFromString 时它不起作用,但我自己对此进行了测试,如果您改用“stringForObjectValue”,它确实起作用。 (将所有“stringFromNumber”替换为“stringForObjectValue”)

    编辑:找到答案

    在此博客上:http://www.nsformatter.com/blog/2010/6/9/nsnumberformatter.html

    上面写着:

    • (NSString *)stringFromNumber:(NSNumber *)number;

    这是一种方便的方法。这 方法返回 nil,如果 number 为 nil, 否则它会调用 -stringForObjectValue:。因此它的行为类似于 -stringForObjectValue:, 除了它从不返回 -nilSymbol

    这似乎是该方法的目的(不使用nilSymbol)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多