在iPhone应用程序中排序NSDictionary数组

时间:2011-07-17 12:13:58

标签: iphone nsarray nsdictionary

我必须按升序或降序对以下数组对象进行排序。

NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3",
                                          @"key4", @"key5", nil];
NSArray *objects = [NSArray arrayWithObjects:@"0", @"2", @"1",
                                             @"5", @"0", nil];
NSDictionary*  dictionary = [NSDictionary dictionaryWithObjects:objects
                                                        forKeys:keys];
for (id key in [dictionary allKeys]) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

我的输出应该是这样的。

key: key4, value:5
key: key2, value:2
key: key3, value:1
key: key1, value:0
key: key5, value:0

1 个答案:

答案 0 :(得分:1)

您似乎想按自己的价值排序。虽然未对NSDictionary进行排序,但您可以按照自己喜欢的方式获取按键排列的数组。看看

- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator
- (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr

然后迭代该数组中的键并从字典中获取匹配值。