Objective-C:NSDectionary字典的常见操作

NSDectionary字典:它是一个存储键值的容器,每一个键key都对应着一个值value,可以通过键key一次性找到目标值value,这是一个比较好的存储器,相比于数组而言,它明显提高了查询效率。同时,它存储数据的方式采用的是哈希存储,因此它的存储的数据是无序的。

 

NSDectionary字典的主要操作有:创建、遍历等,,,

//

//  main.m

//  03-NSDectionary

//

//  Created by ma c on 15/8/18.

//  Copyright (c) 2015年 bjsxt. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[])

{

    @autoreleasepool

    {

        //NSDectionary字典对象,字典中存储的是键值对 key:value,键一般是采用字符串NSString

        //1.创建

        NSDictionary *dic = @{@"one":@1,@"two":@2,@"three":@3};

        NSLog(@"%@",dic);

        

        //字典采取哈希表的形式存储,在查找对象的时候非常的块,接近一次命中。

        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@1,@"one",@2,@"two",@3,@"three",nil];

        NSLog(@"%@",dic2);

        

        //2.枚举遍历

        for(id key in dic2)

        {

            //NSLog(@"%@=%@",key,[dic2 objectForKey:key]);

            NSLog(@"%@=%@",key,dic2[key]);

        }

        

        //Block遍历

        [dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {

            NSLog(@"%@=%@",key,dic2[key]);

            if([key isEqualToString:@"three"])

            {

                *stop = YES;

            }

        }];

        

        //取出所有的key遍历

        NSArray *keys = [dic2 allKeys];

        [keys enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

            NSLog(@"%@=%@",obj,[dic2 objectForKey:obj]);

        }];

        

//        NSArray *value = [dic2 allValues];

//        [value enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

//            NSLog(@"%@",obj);

//        }];//取出所有的value值

        

        

        //3.将字典存储到文件

        [dic2 writeToFile:@"/Users/mac/desktop/dic.plist" atomically:NO];

        

        //4.通过读文件创建字典

        NSDictionary *dic3 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/mac/desktop/dic.plist"];

        NSLog(@"%@",dic3);

    }

    return 0;

}

 

posted @ 2015-08-18 17:52  XYQ全哥  阅读(368)  评论(0编辑  收藏  举报