我想要一个排序 NSDictionary
,但我看到完成它的方式似乎太复杂。
如果我只是NSArray
的{{1}}怎么办?这样,我知道迭代NSDictionary
的顺序。我需要订单,因为我正在处理年表(数据为几个月的日期)。
我仍然认为可能有一个更好的方式所以我转向专业人士(你们)。
感谢。 的
答案 0 :(得分:2)
假设您要对NSDictionary的键进行排序,请参阅此SO帖子:
注意它只是从字典中获取键(作为数组)并对数组进行排序。然后,您可以使用排序的键列表按顺序访问字典条目。
答案 1 :(得分:0)
我还没有尝试过,但NSDictionaryController支持排序。有一个例子at this link。
OP希望在一个案例中按键排序,在另一个案例中按值排序。他的问题的答案是这种形式:
NSSortDescriptor *caseInsensitiveDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"key" ascending: YES selector: @selector(caseInsensitiveCompare:)] autorelease];
[dictionaryController setSortDescriptors: [NSArray arrayWithObject: caseInsensitiveDescriptor]];
NSDictionaryController继承自NSArrayController,并且可能像您正在考虑的那样实现数组,但它是透明的(您不必编写代码)。