2014-12-30 182 views
0

我想從區域設置獲得貨幣符號,但似乎在IOS8 currencySymbol返回的是美元而不是$。有人知道改變了什麼?ios8貨幣symobol國家代碼在前面

感謝,

NSLocale *lcl = [NSLocale currentLocale]; 
NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init]; 
[fmtr setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[fmtr setLocale:lcl]; 

NSLog(@"%@", [fmtr internationalCurrencySymbol]); 
NSLog(@"%@", [fmtr currencySymbol]); 

情節中字00:11:35.617 [1344:424347] USD 情節中字00:11:35.617 [1344:424347] US $

+2

你的語言環境是什麼? 'NSLog(「%@」,[[NSLocale currentLocale] localeIdentifier]);' –

+0

這可能是因爲美元不是唯一的美元。 – Kegluneq

+0

我的區域設置是美國 – user3813287

回答

0

如果你想設置在$,而不是美國的$,那麼你可以參考我的答案Here

NSNumberFormatter * fmt; 
NSNumber   * n; 

fmt = [ [ NSNumberFormatter alloc ] init ]; 
n = [ NSNumber numberWithFloat: 10 ]; 

[ fmt setFormatterBehavior: NSNumberFormatterBehavior10_4 ]; 
[ fmt setCurrencySymbol: @"$" ]; 
[ fmt setNumberStyle: NSNumberFormatterCurrencyStyle ]; 

// NSLog(@"%@", [ fmt stringFromNumber: n ]; 

[ fmt release ]; 

現在使用

Currency.text = [ fmt stringFromNumber: n ]; 
+0

但我不想硬編碼貨幣符號。似乎在IOS7中,我得到了$,但在ios8中我得到了美元 – user3813287