如何在NSMutableDictionary中使用NSEnumerator?

Dev*_*ted 20 iphone nsenumerator

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

谢谢!

Cor*_*oyd 93

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

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

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

NSEnumerator *enumerator = [myDictionary keyEnumerator];

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

这对于在数组中执行反向枚举器之类的操作非常有用.

  • 不要忘记,如果需要,您也可以仅从字典中枚举值:for([myDictionary allValues]中的NSString*值). (3认同)

BJ *_*mer 8

NSDictionary课程参考:

您可以通过按键或使用值枚举字典的内容NSEnumerator被返回的对象keyEnumerator,并objectEnumerator分别.

换一种说法:

NSEnumerator *enumerator = [myMutableDict keyEnumerator];
id aKey = nil;
while ( (aKey = [enumerator nextObject]) != nil) {
    id value = [myMutableDict objectForKey:anObject];
    NSLog(@"%@: %@", aKey, value);
}
Run Code Online (Sandbox Code Playgroud)