Получение локалей на iOS 5

У меня есть этот фрагмент кода, который получает некоторую информацию (текущая страна, название страны) из NSLocale.

Он работает без проблем в iOS 4.3, но вылетает в iOS 5.

При проверке кажется, что [locale localeIdentifier] и [locale displayNameForKey: value:] вообще не работают, но при его построении не было обнаружено никаких предупреждений и ошибок.

Что я могу сделать, чтобы заставить его работать в iOS 5?

// Create a pool for autoreleased objects

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // Get the current country and locale information of the user
    NSLocale *locale = [NSLocale currentLocale];
    NSString *currentLocaleID = [locale localeIdentifier];    //returns en_US instead of the actual country stored in phone settings
    NSDictionary *localeDictionary = [NSLocale componentsFromLocaleIdentifier:currentLocaleID];     
    NSString *currentCountry = [locale displayNameForKey:NSLocaleCountryCode 
                                                   value:[localeDictionary objectForKey:NSLocaleCountryCode]];     // returns nil

    // Get the list of country codes
    NSArray *countryCodeArray = [NSLocale ISOCountryCodes];
    NSMutableArray *sortedCountryNameArray = [NSMutableArray array];


    for (NSString *countryCode in countryCodeArray) {
        NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];   //displayNameString is nil after executing this line
        [sortedCountryNameArray addObject:displayNameString];   //app crashes here
    }

    // Drain the autoreleased pool
    [pool drain];

person user829227    schedule 05.07.2011    source источник
comment
Мы пока не можем ответить на вопросы по iOS5 из-за NDA. Задайте вопрос на форумах разработчиков Apple и/или создайте тикет RADAR, указав Apple в качестве ошибки.   -  person Kendall Helmstetter Gelner    schedule 05.07.2011


Ответы (1)


Это не приводит к сбою в iOS 5.1 или 5.1.1.

person lemnar    schedule 25.05.2012