2011-07-05 11 views
9

मेरे पास कोड का यह टुकड़ा है जो NSLocale से कुछ जानकारी (वर्तमान देश, देश का नाम) प्राप्त करता है। आईओएस 5.आईओएस पर लोकेल प्राप्त करना 5

में

यह आईओएस 4.3 में किसी भी समस्या के बिना काम करता है, लेकिन दुर्घटनाओं यह जाँच करने पर लगता है कि [स्थान localeIdentifier] और [स्थान displayNameForKey: मूल्य:] बिल्कुल काम नहीं करता है, लेकिन कोई चेतावनी और त्रुटियां हुईं इसे बनाने के दौरान पता चला।

आईओएस 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

हम iOS5 सवाल यहाँ अभी तक एनडीए की वजह से उत्तर नहीं दे सकता। ऐप्पल डेवलपर फ़ोरम में पूछें और/या एक बग के रूप में ऐप्पल के साथ एक रैडर टिकट खोलें। –

उत्तर

2

यह आईओएस 5.1 में दुर्घटना नहीं करता है या 5.1.1