iOS 4+; cuando paso un valor nulo a mi NSNumberFormatter, quiero el nil símbolo que se estableció (NSString *) a cambio. Funciona para el símbolo 'cero', pero no para el símbolo nulo. He probado muchos ajustes de configuración diferentes, como comportamiento, agrupación, etc.NSNumberFormatter no devuelve nilSymbol on nil value. ¿Qué me estoy perdiendo?
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]);
Aquí está la salida de la prueba:
[FMTR nilSymbol] = ### >> < <
[FMTR stringFromNumber: nil] = >> (null) < < esto debería ser '###
[FMTR stringFromNumber: 0] = >> 0000 < <
[FMTR stringFromNumber: null] = >> (null) < <
[FMTR numberFromString: nil] = (null)
[FMTR numberFromString: @ "0"] = 0
[FMTR numberFromString: NULL] = (null)