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=4番目
B=2番目
E=最後
C=3番目
ディクショナリを使用すると、キーでアイテムにランダムにアクセスできることに感謝しますが、コレクションの列挙中にアイテムが返される任意の順序には何らかの根拠がありますか?