20

如何使用 NSEnumerator 和 NSMutableDictionary 打印出所有的键和值?

谢谢!

4

3 回答 3

94

除非您需要使用 NSEnumerator,否则您可以使用快速枚举(更快)且简洁。

for(NSString *aKey in myDictionary) {
    NSLog(@"%@", aKey);
    NSLog(@"%@", [[myDictionary valueForKey:aKey] string]); //made up method
}

您还可以使用具有快速枚举的 Enumerator:

NSEnumerator *enumerator = [myDictionary keyEnumerator];

for(NSString *aKey in enumerator) {
    NSLog(@"%@", aKey);
    NSLog(@"%@", [[myDictionary valueForKey:aKey] string]); //made up method
}

这对于在数组中执行反向枚举器之类的事情很有用。

于 2009-06-30T09:07:34.653 回答
8

NSDictionary类参考

您可以使用和分别NSEnumerator返回的对象按键或按值枚举字典的内容。keyEnumeratorobjectEnumerator

换句话说:

NSEnumerator *enumerator = [myMutableDict keyEnumerator];
id aKey = nil;
while ( (aKey = [enumerator nextObject]) != nil) {
    id value = [myMutableDict objectForKey:anObject];
    NSLog(@"%@: %@", aKey, value);
}
于 2009-06-30T07:07:33.083 回答
3

这是没有对象搜索的版本。请注意 objectForKey 调用不存在。他们同时使用 keyEnumerator 和 objectEnumerator。

id aKey = nil;
NSEnumerator *keyEnumerator = [paramaters keyEnumerator];
NSEnumerator *objectEnumerator = [paramaters objectEnumerator];
while ( (aKey = [keyEnumerator nextObject]) != nil) {
    id value = [objectEnumerator nextObject];
    NSLog(@"%@: %@", aKey, value);
}
于 2013-02-13T02:48:53.947 回答