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];
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. –