私はNSDictionary
谷を取得していJSON
ます。NSLog
キーの順序を実行するときは、次のとおりです: 40617、40737、40946、41066、41306。値は事前にソートされているため、それが私が望む順序です。しかし、ループするNSDictionary
と、次の順序になります: 40617、41066、40737、40946、41306。使用時に見える順番で入手することは可能NSLog
ですか?
質問する
935 次
3 に答える
4
辞書 (マップ) はソートされていません。それらを反復する場合、保証された順序はありません。すべてのエントリを取得することが保証されているだけです。
そのため、キーを取得し、必要な方法で並べ替えてから、並べ替えたキーの値を取得する必要があります。
例えば:
NSArray *keys = [myDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compare:)];
for (id key in sortedKeys) {
id value = [myDictionary objectForKey:key];
NSLog(@"%@ = %@", key, value);
}
于 2013-10-22T09:15:23.473 に答える
2
はNSDictionary
定義によって順序付けられていないため、値を追加するときに常に同じ順序である必要はありません。順序付けられたコレクションが必要な場合は、NSArray
于 2013-10-22T09:15:14.617 に答える