gpt4 book ai didi

ios - 按字母顺序排序 [NSDictionary allKeys]

转载 作者:行者123 更新时间:2023-11-29 10:54:22 24 4
gpt4 key购买 nike

我正在使用最新的 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;
}

但是,我需要使用一些东西,例如 NSDictionary;让我知道获取 ISO 代码和本地化名称。

我尝试使用 NSDictionary 而不是 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:)];

如何对所有键进行排序?
有什么方法可以使用它的 displayName 获取 ISOCode 吗?

最佳答案

sortUsingSelector: 是 NSMutableArray 的方法不是 NSArray 的方法您可以使用 sortedArrayUsingSelector 对数组进行排序,您将得到一个包含已排序内容的新数组

- (NSArray *)sortedArrayUsingSelector:(SEL)comparator


+ (NSArray*)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];

}

return [[sortedCountryDic allKeys] sortedArrayUsingSelector:@selector(localizedCompare:)];
}

关于ios - 按字母顺序排序 [NSDictionary allKeys],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com