2014-07-14 7 views
8

내 응용 프로그램은 사용자가 지출 추적을 위해 다양한 통화를 선택할 수있게합니다. 나는 currecy 기호로 금액을 표시하는 레이블이 있습니다. 나는 NSNumberFormatterkCFNumberFormatterCurrencyStyle을 사용하여 금액 문자열의 서식을 지정하고 레이블에 표시합니다.NSNumberFormatter 통화 기호

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

내 목표는 다른 색으로 통화 기호를 표시하는 것입니다, 그래서 내가 문자 '범위를 발견하고 그것을 다른 속성을 설정하려고, NSAttributedString은을 사용하고 있습니다. 문제는 내가 기인 문자열 initilizing 때 포맷이 잘못 기호를 반환한다는 것입니다 :

이 사람이 얻을 수있는 방법을 알고 있나요 :

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

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

하지만를 라벨이 화면에 표시 될 때 나는 올바른 유로 통화 기호를 참조 주어진 통화 코드의 통화 기호?

답변

8

방금 ​​코드를 테스트했습니다. 당신이 바로 수치 포매터 당신이했던 방법을 정의한 후 로그 문을 실행하는 경우, 출력은 국제 통화 기호 및 통화 기호 시스템에 설정된 로케일에 의존하는 것처럼 보인다

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

주입니다. 그러나 당신은 쉽게이 같은 포맷을위한 로케일을 변경할 수 있습니다

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

아마 에 가장 좋은 것입니다하지 전혀 currencySymbol을 설정합니다. 태국 (@"th_TH") 로케일 일 경우

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

현재 로케일이 무엇입니까? –

+0

나는 en_US에 있으면 작동하지 않는다는 것을 알았습니다. –

+0

틀렸어. 위에서 설명한대로 포맷터의 로켈을 설정할 수 있습니다. – Mundi