由于您的排序不遵循任何自然顺序,一个简单的解决方案可能是使用另一个数组跟踪订单
NSArray *array1 = [NSArray arrayWithObjects:@"rose",@"orchid",@"sunflower",nil];
NSArray *array2 = [NSArray arrayWithObjects:@"dog", @"cat",@"ogre",@"wookie", nil];
NSArray *array3 = [NSArray arrayWithObjects:@"parrot",@"canary bird",@"tweety",@"bibo",nil];
NSArray *keys = [NSArray arrayWithObjects:@"Plants",@"Animals",@"Birds", nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
array1,[keys objectAtIndex:0],
array2,[keys objectAtIndex:1],
array3,[keys objectAtIndex:2],
nil];
for (NSString *key in keys) {
NSLog(@"%@ %@", key, [dict objectForKey:key]);
}
Matt 在他精彩的博客中展示了如何创建有序字典,它基本上使用另一个数组来保持顺序,就像我在这里展示的那样:OrderedDictionary: Subclassing a Cocoa class cluster