NSDictionary数组在iphone应用中的排序



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

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

似乎你想按你的值排序。虽然没有对NSDictionary进行排序,但您可以以您喜欢的方式获得键的数组。看一下

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

然后遍历该数组中的键,并从字典中获取匹配的值

最新更新