최신 SDK가 포함 된 iOS 5.0 이상 앱을 개발 중입니다.[NSDictionary allKeys]를 알파벳 순으로 정렬하십시오.
국가 목록과 함께 UIPickerView
을 보여 드리고 싶습니다. 이 국가는 사전 순으로 정렬됩니다. 사용자가 국가를 선택하면 ISO 코드를 저장해야합니다.
이
내가 국가의 이름 지역화 얻기 위해 지금 사용하고 코드입니다 : 내가 예를 들어, 뭔가를 사용해야+ (NSArray*)countriesNames
{
NSLocale *locale = [NSLocale currentLocale];
NSArray *countryArray = [NSLocale ISOCountryCodes];
NSMutableArray *sortedCountryArray = [[NSMutableArray alloc] init];
for (NSString *countryCode in countryArray)
{
NSString* displayNameString = [locale displayNameForKey:NSLocaleCountryCode
value:countryCode];
[sortedCountryArray addObject:displayNameString];
}
[sortedCountryArray sortUsingSelector:@selector(localizedCompare:)];
return sortedCountryArray;
}
그러나하는 NSDictionary
; 저에게 ISO 코드와 지역화 된 이름을 알려주고 있습니다.
나는 NSDictionary
대신 NSArray
(A)의를 사용하는 것을 시도했다 :
+ (NSDictionary*)countriesNames
{
NSLocale *locale = [NSLocale currentLocale];
NSArray *countryArray = [NSLocale ISOCountryCodes];
NSMutableDictionary* sortedCountryDic = [[NSMutableDictionary alloc] init];
for (NSString *countryCode in countryArray)
{
NSString* displayNameString = [locale displayNameForKey:NSLocaleCountryCode
value:countryCode];
[sortedCountryDic setObject:countryCode forKey:displayNameString];
}
[[sortedCountryDic allKeys] sortUsingSelector:@selector(localizedCompare:)];
return sortedCountryDic;
}
하지만 컴파일 시간 예외가 : No visible @interface for 'NSArray' declares the selector 'sortUsingSelector:'
합니다. 여기
:
[[sortedCountryDic allKeys] sortUsingSelector:@selector(localizedCompare:)];
어떻게 분류해서 AllKeys 수 있습니까?
displayName을 사용하여 ISOCode를 가져 오는 방법이 있습니까?
로 새로운 배열을 얻을 것이다 국가 코드 대신 사전으로? – trojanfoe
'-sortUsingSelector :'는 NSMutableArray 클래스의 메소드이기 때문에 발생할 수 있습니다. NSArray는 대신'-sortedArrayUsingSelector :'메소드를 가지고 있고'allKeys' 메소드는'NSMutableArray' 객체보다 NSArray를 반환합니다. – holex