2016-02-04 3 views
0

Я работаю над приложением для iOS, и я пытаюсь определить местную валюту пользователя через код валюты, предоставленный NSNumberFormatter. Вопрос, который у меня есть, заключается в том, как он работает? Используется ли настройка телефона для определения местной валюты или контакт с iOS App Store?iOS NSNumberИмя кода валюты, как он работает?

Документация библиотеки разработчиков iOS просто объясняет, что она вернет, но не так, как она определена.

+0

Вы понимаете мой ответ? – Vvk

ответ

1

Надеется, что это помогает вам

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[formatter setLocale:[NSLocale currentLocale]]; 
NSString *strLocalizedMoney = [formatter stringFromNumber:myCurrencyNSNumberObject]; 

если вы должны изменить curreny/место, то вы должны использовать NSLocale

NSLocale* japanese_Locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"]; //change identifier as per your requirement 
NSNumberFormatter* formater = [[NSNumberFormatter alloc] init]; 
[formater setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[formater setLocale:japanese_Locale]; 

Полного пример т.е.

NSLocale* japanese_Locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"]; //change identifier as per your requirement 
NSNumberFormatter* formater = [[NSNumberFormatter alloc] init]; 
[formater setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[formater setLocale:japanese_Locale]; 

// Local currency symbol added here 
NSString* yourCurrencySymbol = [formater currencySymbol]; 
NSLog(@"%@", yourCurrencySymbol); // Prints '¥' or Any if Changes 

// International currency symbol 
NSString* internationalCurrencySymbol = [formater internationalCurrencySymbol]; 
NSLog(@"%@", internationalCurrencySymbol); // Prints 'JPY' it is international symbol 
3

NSNumberFormatter предоставляет Вам код валюты, основанный на вашей локали, и также можно изменить, установив locale для числового форматирования, подобного этому.

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

Возможно, было бы лучше вообще не устанавливать валютуSymbol. Тогда, когда локаль, скажем, Китай (@ «zh_CN»), вы получаете

Далее вы можете получить связанные с валютой свойства на nsnumber, как это.

numberFormatter.internationalCurrencySymbol 
numberFormatter.currencySymbol     
numberFormatter.currencyCode