1
我有格式化double
到貨幣NSString
Objective-C的方法:不同方法調用的NSString值不一樣嗎?
- (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;
}
的NSLog
說法正確打印格式的兩倍。但是,當我調用此方法並將其分配給另一個NSString
對象時,它的值爲空。
例如:
NSString* key = [self formatCurrencyValue:menuItem.Price];
NSLog(@"Key value=", key);
從NSLog
語句的輸出有:
Key值=
這是怎麼回事???
詛咒@%!謝謝! – 2010-06-05 23:10:35
@Wayne:不客氣。你會認爲當你傳入太多的參數和格式說明符時,編譯器會警告你,但是我記得在某處讀到Objective-C中沒有做到這一點的具體原因...... – 2010-06-05 23:11:36