2011-07-05 4 views
9

J'ai reçu ce code qui contient quelques informations (le nom actuel du pays et du pays) de NSLocale.Obtenir des paramètres régionaux sur iOS 5

Il fonctionne sans aucun problème dans iOS 4.3, mais se bloque dans iOS 5.

Après vérification, il semble que [LocaleIdentifier locale] et [locale displayNameForKey: Valeur:] ne fonctionne pas du tout, mais pas d'avertissement et d'erreurs ont été détecté lors de la construction.

Que puis-je faire pour le faire fonctionner dans 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]; 
+2

Nous ne pouvons pas répondre à des questions iOS5 ici encore en raison de la NDA. Demandez dans les Forums des développeurs Apple et/ou ouvrez un ticket RADAR avec Apple en tant que bug. –

Répondre

2

Cela ne tombe pas en panne dans iOS 5.1 ou 5.1.1

Questions connexes