iphone应用程序中NSDictionary数组的排序

iphone应用程序中NSDictionary数组的排序,iphone,nsarray,nsdictionary,Iphone,Nsarray,Nsdictionary,我必须按升序或降序对以下数组对象进行排序 NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", @"key3", @"key4", @"key5", nil]; NSArray *objects = [NSArray arrayWithObjects:@"0", @"2", @"1",

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

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

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

似乎要按值排序。虽然未对
NSDictionary
进行排序,但可以按自己喜欢的方式对键数组进行排序。看看

- (NSArray *)keysSortedByValueUsingSelector:(SEL)comparator
- (NSArray *)keysSortedByValueWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr
然后迭代该数组中的键,并从字典中获取匹配值。

for(dictionary allKeys中的id-key]){…}
for(dictionary allKeys中的id-key]){…}