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] = >> ### << </p>
[fmtr stringFromNumber: nil] = >> (null) << это должно быть '### </p>
[fmtr stringFromNumber: 0] = >> 0000 << </p>
[fmtr stringFromNumber: null] = >> (null) << </p>
[fmtr numberFromString: nil] = (ноль)
[fmtr numberFromString: @ "0"] = 0
[fmtr numberFromString: NULL] = (ноль)