【发布时间】:2010-10-12 11:55:54
【问题描述】:
无论键如何,如何循环遍历 NSMutableDictionary 中的所有对象?
【问题讨论】:
标签: objective-c ios nsmutabledictionary
无论键如何,如何循环遍历 NSMutableDictionary 中的所有对象?
【问题讨论】:
标签: objective-c ios nsmutabledictionary
标准方式如下所示
for(id key in myDict) {
id value = [myDict objectForKey:key];
[value doStuff];
}
【讨论】:
for (id key, value in myDict) 那将是完美的。
id key in myDict.allKeys),而不是字典。这允许您改变字典,这可能是您想要做的。
你可以使用
[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
如果您的目标操作系统支持块。
【讨论】:
您可以使用[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]);
}
【讨论】:
另一种方法是使用字典枚举器。以下是来自 Apple 的一些示例代码:
NSEnumerator *enumerator = [myDictionary objectEnumerator];
id value;
while ((value = [enumerator nextObject])) {
/* code that acts on the dictionary’s values */
}
【讨论】: