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

don*_*ile 6 iphone objective-c foundation

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

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

任何人?

fbr*_*eto 8

我想你想要的是这样的:

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

取自这里.


zek*_*kel 7

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

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

}]
Run Code Online (Sandbox Code Playgroud)

  • +1这可能比"fastEnumeration"变体快**快(因为它可以使用Core Foundation的`CFDictionaryApplyFunction`).它为每个元素节省了昂贵的查找,因为它可以简单地遍历存储桶并传递密钥和值. (3认同)