- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用最新的 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/
我正在使用最新的 SDK 开发 iOS 5.0+ 应用。 我想显示一个包含国家列表的 UIPickerView。这些国家/地区将按字母顺序排序。当用户选择一个国家时,我必须存储它的 ISO 代码。 这
我正在尝试获取 NSMutableDictionary 的所有键值作为字符串数组。我正在使用此 myNSMutableDictionary.allkeys 将值作为数组获取,但我找不到解包键值的方法。
我在另一个字典中的许多 JSON 字典上调用以下代码(因此在这种情况下,NSDictionary 对象与另一个 NSDictionary。 -(NSString *)getAllDictionaryV
我是 Objective-C 的新手,今天我在使用 NSDictionaries 时遇到了 allKeys 方法。据我了解,它返回一个 NSArray,其中包含随机顺序的字典键。但是,这个顺序总是一样
NSDictionary 是否有理由将其键返回为 NSArray 而不是 NSSet?文档已经指出数组中键的顺序未定义,使用集合听起来合乎逻辑。 最佳答案 在 API 设计中,集合往往会被忽视。大多数
现在我知道这意味着它正在尝试获取 NSString 中的所有键,这是不可能的。但是,我不知道为什么我的字典是 NSString。 return [requestManager POST:@"/api/
我正在查看一个代码块,但无法理解行中发生的事情 - formValues.AllKeys.Contains("Email_"+ i); 看起来应该进行分配地方但是... public ActionRe
我正在尝试将我的 NSdictionary 值放入 UITableViewCell 中。这是我的字典格式: { date = "3/4/14, 3:33:01 PM Pacific Standard
我想将下面的代码转换成 swift,实际上我不想使用 nsdictionary 的 allKeys 来松散键的顺序 NSArray *keys = [myDictionary allKeys]; k
NSDictionary 的 -allKeys 方法的计算复杂度是多少? 我假设它是 O(1),因为 NSDictionary 可能将它保留在内部某个地方,但你永远不知道:)。我尝试查看文档(NSDi
我在获取 Dictionary 的键数组时遇到一些问题 - 这将用于 UITableView 数据模型 对于顶层表,我期望计数为 3 和键:GMRS、IRLP 和 WinSystem 代码: let
我试图将我的 NSDictionary 中所有键的数组放入一个数组中,并使用 localizedCaseInsensitiveCompare 进行排序。我首先尝试做: NSArray *test =
我有一个应用程序,它有一个从网络服务返回的字典。我正在将该字典传递给另一个 View Controller 。 在这 NSDictionary *rewards=[rewardsdictionary
我在后台线程上使用可变字典遇到了一个有趣的问题。 目前,我正在一个线程上分块下载数据,将其添加到数据集中,并在另一个后台线程上处理它。除了一个问题外,整体设计大部分工作正常:有时,对主数据集中内部字典
我有一个包含 TableView 的 View Controller ,对于该 TableView 的数据源,我使用包含两个键和两个值的 NSDictionary。我用对象字面量初始化字典,我还有一个
我有以下代码: - (Item *) getRandomItem { if (itemIDs == nil) { [self parse]; } NSArray
在我的项目中,我从 .plist 中提取数据,更具体地说,是从 NSDictionary 中提取数据。我用 .plist 的内容初始化了一个字典,效果很好。当我然后做 NSArray *array =
我对 Redis 缓存的行为有疑问。请澄清- 例如,如果 TTL 设置为 15 分钟,则对于键“xyz”。并且,如果其在服务器级别的驱逐策略设置为“allkeys-lru”。过期项目(TTL 的原因)
我有一个带有 maxmemory 512MB 和 maxmemory-policy allkeys-lru 的 Redis 服务器,但是一旦服务器在使用一天后已满,我就无法添加任何更多的项目: red
我现在在回发时使用 Literal 创建了复选框,我得到了在 Request.form.Allkeys 中选中的复选框。但是我不知道如何读取这些值,如何使用它们?我如何计算其中有多少个值以及如何在其中
我是一名优秀的程序员,十分优秀!