gpt4 book ai didi

iphone - NSNumberFormatter 不在 nil 值上返回 nilSymbol。我错过了什么?

转载 作者:可可西里 更新时间:2023-11-01 03:39:33 29 4
gpt4 key购买 nike

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

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)<< this should be '###

[fmtr stringFromNumber:0]=>>0000<<

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

[fmtr numberFromString:nil]=(null)

[fmtr numberFromString:@"0"]=0

[fmtr numberFromString:NULL]=(null)

最佳答案

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

编辑:找到答案

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

它说:

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

This is a convenience method. This method returns nil, if number is nil, otherwise it calls -stringForObjectValue:. Therefore it behaves like -stringForObjectValue:, except it never returns the -nilSymbol

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

关于iphone - NSNumberFormatter 不在 nil 值上返回 nilSymbol。我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797145/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com