2014-07-14 25 views
8

Uygulamam, kullanıcının harcama takibi için çeşitli para birimlerini seçmesine izin veriyor. Currecy sembolü ile miktarı gösteren bir etiket var. Ben miktarı dizesini biçimlendirmek ve etiket görüntülemek için kCFNumberFormatterCurrencyStyle ile NSNumberFormatter kullanıyorum;NSNumberFormatter para birimi simgesi

numberFormatter = [[NSNumberFormatter alloc] init]; 
numberFormatter.numberStyle = kCFNumberFormatterCurrencyStyle; 
numberFormatter.currencyCode = @"EUR"; 

Amacım farklı renk ile para birimi sembolü göstermektir, bu yüzden semboller aralığını bulmak ve ona farklı özelliklerini ayarlamaya çalışırken, NSAttributedString kullanıyorum. Sorun atfedilen dize initilizing zaman biçimlendirici yanlış sembolü dönüş olmasıdır:

herkes alabilirsiniz biliyor mu:

MLOG(@"internationalCurrencySymbol %@", numberFormatter.internationalCurrencySymbol); 
MLOG(@"currencySymbol %@", numberFormatter.currencySymbol); 
MLOG(@"currencyCode %@", numberFormatter.currencyCode); 

//logs: 
//USD 
//$ 
//EUR 

ancak etiket ekranda görüntülendiğinde Doğru Euro para birimi sembolünü bakınız Verilen para birimi kodu için para birimi simgesi?

cevap

8

Sadece kodunuzu test ettim. Doğru numara biçimlendirici o şekilde tanımlayan sonra günlük ifadeleri çalıştırırsanız, çıkış uluslararası para birimi simgesi ve para birimi simgesi sisteminizde ayarlanan yerel ayara bağlı görünüyor

@"EUR" 
@"€" 
@"EUR" 

Not olduğunu. Ama kolayca böyle biçimlendiricisine için yerel ayarını değiştirebilirsiniz:

numberFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]; 

Muhtemelen iyi olurdu değil hiç currencySymbol ayarlayın. Daha sonra yerel ayar, Tayland (@"th_TH") olduğunda,

numberFormatter.internationalCurrencySymbol "THB" 
numberFormatter.currencySymbol    "฿" 
numberFormatter.currencyCode     "THB" 
+0

Geçerli konumunuz nedir? –

+0

Gördüğünüz gibi, eğer en_US konumundaysanız, –

+0

Yanlış çalışmıyor. Formatlayıcının yerel ayarını yukarıda açıklandığı gibi ayarlayabilirsiniz. – Mundi

İlgili konular