如何在不知道密钥的情况下迭代字典,同时获取密钥和对象?

时间:2010-06-17 19:26:28

标签: iphone objective-c foundation

我有一个NSDictionary,想要迭代对象。但与此同时,我需要知道字典的关键。

我记得有一种特殊的,奇特的快速枚举形式,但却忘记了确切的语法。

任何?

5 个答案:

答案 0 :(得分:8)

我认为你想要的是这样的:

for (id key in dictionary) {
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}

取自here

答案 1 :(得分:7)

如果您喜欢积木,这也是一个不错的选择。

[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

}]

答案 2 :(得分:1)

for (id key in mydictionary) {
   id mything = [mydictionary objectForKey:key];
}

答案 3 :(得分:0)

keyEnumerator返回一个对象,让您遍历字典中的每个键。来自here

答案 4 :(得分:0)

据我所知,在您提出问题时,只有一种方法可以同时遍历键和值:CFDictionaryApplyFunction

使用这个Core Foundation函数涉及一个丑陋的C函数指针,用于循环体和许多不那么丑陋但无需免费桥接的转换。

@zekel有modern way of iterating字典。投票给他!