J'ai une méthode Objective-C qui formate un double
à une monnaie NSString
:La valeur NSString n'est pas la même pour tous les appels de méthode?
- (NSString*) formatCurrencyValue:(double)value
{
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehaviorDefault];
[numberFormatter setCurrencySymbol:@"$"];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *c = [NSNumber numberWithFloat:value];
NSString* stringValue = [numberFormatter stringFromNumber:c];
NSLog(@"currencyFormatter=%@",stringValue);
return stringValue;
}
L'impression est correcte déclaration NSLog
double format. Toutefois, lorsque j'appelle cette méthode et lui affecte un autre objet NSString
, sa valeur est vide.
Par exemple:
NSString* key = [self formatCurrencyValue:menuItem.Price];
NSLog(@"Key value=", key);
La sortie de la déclaration NSLog
il y a:
valeur clé =
Qu'est-ce qui se passe ???
Malédiction du @%! Merci! –
@Wayne: De rien. On pourrait penser que le compilateur vous avertirait lorsque vous avez passé trop d'arguments par rapport aux spécificateurs de format, mais je me souviens avoir lu quelque part qu'il y a une raison spécifique pour laquelle cela n'est pas fait dans Objective-C ... –