如何在不管密钥的情况下遍历NSMutableDictionary中的所有对象?
答案 0 :(得分:208)
标准方式看起来像这样
for(id key in myDict) {
id value = [myDict objectForKey:key];
[value doStuff];
}
答案 1 :(得分:28)
你可以使用
[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
如果您的目标操作系统支持阻止。
答案 2 :(得分:22)
您可以使用[dict allValues]
获取NSArray
的值。请注意,它不保证呼叫之间的任何顺序。
答案 3 :(得分:3)
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
}];
答案 4 :(得分:3)
您无需为变量赋值。您可以使用myDict[key]
直接访问它。
for(id key in myDict) {
NSLog(@"Key:%@ Value:%@", key, myDict[key]);
}
答案 5 :(得分:2)
另一种方法是使用Dicts枚举器。以下是Apple的一些示例代码:
NSEnumerator *enumerator = [myDictionary objectEnumerator];
id value;
while ((value = [enumerator nextObject])) {
/* code that acts on the dictionary’s values */
}