我注意到 NSDictionary 的枚举输出没有返回与添加项目的顺序相同的序列。
NSMutableArray *arrKeys;
NSMutableArray *arrValues;
NSDictionary *items;
arrKeys = [NSMutableArray arrayWithCapacity:5];
arrValues = [NSMutableArray arrayWithCapacity:5];
[arrKeys addObject:@"A"]; [arrValues addObject:@"First"];
[arrKeys addObject:@"B"]; [arrValues addObject:@"Second"];
[arrKeys addObject:@"C"]; [arrValues addObject:@"Third"];
[arrKeys addObject:@"D"]; [arrValues addObject:@"Fourth"];
[arrKeys addObject:@"E"]; [arrValues addObject:@"Last"];
items = [NSDictionary dictionaryWithObjects:arrValues forKeys:arrKeys];
for (NSString *aKey in items) {
NSLog(@"%@=%@", aKey, [items valueForKey:aKey]);
}
返回...
A=第一个
D=第四个
B=第二个
E=最后一个
C=第三个
我很欣赏字典允许您按键随机访问项目,但是在枚举集合时返回的任意顺序是否有一些理由?