views:

131

answers:

3

I know you can Enumerate the keys or values of NSMutableDictionary using NSEnumerator. Is it possible to do both together? I'm looking for something similar to the PHP foreach enumerator like:

foreach ($dictionary as $key => $value);
+5  A: 

Perhaps look into NSDictionary's method:

enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))

If you're not familiar with blocks in C/Objective-C, this is a good tutorial: http://thirdcog.eu/pwcblocks/

Sam
Typeoneerror
+4  A: 
NSDictionary* d = [NSDictionary dictionaryWithObjectsAndKeys:@"obj1",@"key1",
                                                           @"obj2",@"key2",
                                                           @"obj3",@"key3",
                                                           @"obj4",@"key4",nil];

for (id key in [d allKeys]) {
    NSLog(@"%@ - %@",key,[d objectForKey:key]);
}

Outputs:

keytest[7880:a0f] key3 - obj3
keytest[7880:a0f] key1 - obj1
keytest[7880:a0f] key4 - obj4
keytest[7880:a0f] key2 - obj2
ACBurk
One thing: Using fast enumeration on an `NSDictionary` already iterates the keys, so the `[d allKeys]` is unnecessary.
Wevah
ah, nice to know
ACBurk
I think the blocks are nicer, but this is what I ended up doing since I can't use blocks in my iphone app.
Typeoneerror
yeah, blocks are the future but sometimes we have to live in the past
ACBurk