9
Tengo este fragmento de código que obtiene cierta información (país actual, nombre del país) de NSLocale.Obtener configuraciones regionales en iOS 5
Funciona sin problemas en iOS 4.3, pero se estrella en iOS 5.
al hacer el registro parece que [LocaleIdentifier local] y [locale displayNameForKey: Valor:] no funciona en absoluto, pero no hay advertencias y los errores eran detectado al construirlo.
¿Qué puedo hacer para que funcione en 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];
No puede responder a preguntas IOS5 aquí todavía debido a la NDA. Pregunte en los foros de desarrolladores de Apple y/o abra un ticket de RADAR con Apple como un error. –