NSDictionary

  • NSDictionary
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    
    @autoreleasepool {
        NSDictionary *dic 
        = [NSDictionary dictionaryWithObjectsAndKeys:@"val1", @"key1", @"val2", @"key2", @"val3", @"key3", nil];
        // keyで高速列挙
        for (NSString *key in [dic keyEnumerator]) {
            NSLog(@"key:%@", key);
        }
        // valueで高速列挙
        for (NSString *val in [dic objectEnumerator]){
            NSLog(@"val:%@", val);
        }
        NSLog(@"ーーーブロックオブジェクトーーー");
        [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            if ([key isEqualToString:@"key3"]) {
                *stop = YES;
            }
            NSLog(@"key:%@,val:%@", key, obj);
        }];
    }
    return 0;
}

実行結果は

2012-02-12 07:26:28.899 Study[288:707] key:key1
2012-02-12 07:26:28.900 Study[288:707] key:key3
2012-02-12 07:26:28.901 Study[288:707] key:key2
2012-02-12 07:26:28.902 Study[288:707] val:val1
2012-02-12 07:26:28.903 Study[288:707] val:val3
2012-02-12 07:26:28.904 Study[288:707] val:val2
2012-02-12 07:26:28.904 Study[288:707] ーーーブロックオブジェクトーーー
2012-02-12 07:26:28.905 Study[288:707] key:key1,val:val1
2012-02-12 07:26:28.906 Study[288:707] key:key3,val:val3