2012-07-04 4 views
0

Я тупик, почему этот код не работает в соответствии с комментарием ниже:NSLocale - поиск COUNTRYCODE, а затем использовать это, чтобы развернуть код

NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; 
NSLog(@"Country Code: %@", countryCode); 

if (countryCode == @"US") { 
    NSLog(@"Country is USA"); // Does not execute since the if does not pass 
} 

Языковой является en_US поэтому код страны США. Все правильно по этой части вещей. Что я делаю неправильно, и как мне получить «Country is USA» для показа?

Спасибо!

Тестирование на прошивкой 5.1 и 6.0, тот же результат

ответ

2

Строка не может быть сравнена с помощью оператора ==, попробуйте использовать вместо isEqualToString::

NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode]; 
NSLog(@"Country Code: %@", countryCode); 

if ([countryCode isEqualToString: @"NL"]) { 
    NSLog(@"Country is NL"); 
} 

Используется NL, так как я нахожусь в Нидерландах:)

+0

Вау, не могу поверить, что я пропустил это. Благодаря! –

2

Вы должны использовать метод isEqualToString: для сравнения содержимого двух строк. В == операторе испытание для равенства двух указателей и поэтому возвращает 0.

 Смежные вопросы

  • Нет связанных вопросов^_^