ios字典数组

时间:2012-03-01 17:13:39

标签: objective-c ios cocoa-touch nsarray nsdictionary

我想要一个排序 NSDictionary,但我看到完成它的方式似乎复杂。

如果我只是NSArray的{​​{1}}怎么办?这样,我知道迭代NSDictionary的顺序。我需要订单,因为我正在处理年表(数据为几个月的日期)。

我仍然认为可能有一个更好的方式所以我转向专业人士(你们)。

感谢。

2 个答案:

答案 0 :(得分:2)

假设您要对NSDictionary的键进行排序,请参阅此SO帖子:

Sort an NSMutableDictionary

注意它只是从字典中获取键(作为数组)并对数组进行排序。然后,您可以使用排序的键列表按顺序访问字典条目。

答案 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,并且可能像您正在考虑的那样实现数组,但它是透明的(您不必编写代码)。