キーに関係なく、NSMutableDictionary内のすべてのオブジェクトをループするにはどうすればよいですか?
標準的な方法は次のようになります
for(id key in myDict) {
id value = [myDict objectForKey:key];
[value doStuff];
}
使用できます
[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
ターゲットOSがブロックをサポートしている場合。
[dict allValues]
を使用して、値のNSArray
を取得できます。呼び出し間の順序を保証するものではないことに注意してください。
高速列挙
for(id key in myDictionary) {
id value = [myDictionary objectForKey:key];
// do something with key and obj
}
ブロック内:
[myDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
変数に値を割り当てる必要はありません。 myDict[key]
で直接アクセスできます。
for(id key in myDict) {
NSLog(@"Key:%@ Value:%@", key, myDict[key]);
}
別の方法は、Dicts Enumeratorを使用することです。 Appleのサンプルコードを次に示します。
NSEnumerator *enumerator = [myDictionary objectEnumerator];
id value;
while ((value = [enumerator nextObject])) {
/* code that acts on the dictionary’s values */
}