最新の SDK を使用して iOS 5.0 以降のアプリを開発しています。
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;
}
ただし、何かを使用する必要があります。たとえば、 a NSDictionary
; ISOコードとローカライズされた名前を取得することを教えてくれました。
NSDictionary
a の代わりに aを使用しようとしましたNSArray
:
+ (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 を取得する方法はありますか?