NSDictionary使用枚举方法

在字典当中我们同样可以使用枚举方法, 通过枚举方法逐个打印里面的键和值.

这里涉及的方法:

keyEnumerator:通过一个枚举器可以访问并返回字典里的键.

objectEnumerator:通过一个枚举器可以访问并返回字典里的值.

PS:这里我们需要注意一下, 由于字典里没有顺序的要求, 所以在这里我们是没有逆序枚举的方法.

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSDictionary *dicti = [[NSDictionary alloc]initWithObjectsAndKeys:@"One", @"1", @"Three", @"3",@"Two", @"2", nil];
        
        //枚举法它分为键的便利.
        NSEnumerator * enumerator = [dicti keyEnumerator];
        id key;
        while(key = [enumerator nextObject])
        {
            NSLog(@"key = %@", key);
        }
//        PS:因为我们在这里使用的是便利, 所以它打印的结果会按照我们存储的顺序来打印.
//        同样, 由于字典不要求顺序的排列, 所以在字典里是没有逆序枚举这种方法.
        
        //值的便利.
        NSEnumerator * objen = [dicti objectEnumerator];
        id obje;
        while(obje = [objen nextObject])
        {
            NSLog(@"objen = %@", obje);
        }
        [dicti release];
    }
    return 0;
}

输出的结果:

2014-10-13 20:55:07.949 EnumNSDictionary[6624:303] key = 1
2014-10-13 20:55:07.950 EnumNSDictionary[6624:303] key = 3
2014-10-13 20:55:07.950 EnumNSDictionary[6624:303] key = 2
2014-10-13 20:55:07.951 EnumNSDictionary[6624:303] objen = One
2014-10-13 20:55:07.951 EnumNSDictionary[6624:303] objen = Three
2014-10-13 20:55:07.951 EnumNSDictionary[6624:303] objen = Two
Program ended with exit code: 0