A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuhoulin 中级黑马   /  2015-7-26 21:41  /  564 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

NSDictionary
   1.基本知识
      NSDictionary的意思是字典。
      NSDictionary的作用类似:通过一个key值,能找到对应的value
      NSDictionary是不可变的,一旦初始化完毕,不可修改
      字典的key值和value值都是对象
   2.创建
      //创建空字典
         NSDictionary *dict1 = [NSDictional dictionary];
         由于NSDictionary是不可变的,一旦创建不能改动,所以这样写没有意义
      //创建只有一组键值对的字典
         NDSictionary *dict2 = [NSDictionary dictionaryWithObject:@"zhangsan" forkey:@"zs"];
      //创建多组键值对的字典
          NDSictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"zhangsan" forkey:@"zs",@"lisi",@"k2",nil];//成对
                     出现,前面是value值,后面是key值。
          NSLog(@"%@",dict2);//输出结果包含扎起大括号里
      //快速创建字典
           NDSictionary *dict4 = @{@"k1":@"a", @"k2":@"b", @"k3":@"c"};
   3.键值对集合的特点
     (1)字典存储的时候,必须是以"键值对"的方式来存储,并且key值不能重复,如果重复了,后面添加的无法加入字典
     (2)键值对中存储的数据是无序的
     (3)键值对集合可以根据键值快速获取数据
   4.NSDictionary基本用法
     (1) -(NSUInteger)count------------返回字典的键值对数目
          NSLog(@"%lu",dict.count);
     (2) -(id)objectForKey:(id)akey-----------根据key值获得value值
          NSString *str = [dict objectForKey:@"k1"];

   5.字典的遍历
      //获取所有的key
      //根据key获取value
      方法一:
      for(NSString*key in dict){
           NSLog(@"key = %@,value=%@",key,[dict objectForKey:key]);
      }
      方法二:
      [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
             NSLog(@"%@--->%@",key,ogj);
      }]

    6.NSDictionary的简写及文件操作
      (1)创建的简写
         一般写法[NSDictionary dictionaryWithObjectsAndKeys:@"Jack",@"男",@“sex”,nil];
         简写:@[@"Jack",@"男",@“sex”];
      (2)获取元素
          之前写法:[dict objectForKey:@"name"];
          现在:dict[@"k1"];
    7.NSDictionary的文件操作//把字典保存在文件中
       BOOL isWrite = [dict writeToFile:@"/Users/dict.plist" atomically:YES];
       is(isWrite){
            NSLog(@"写入成功");
       }
       //从文件中读取字典
      NSDictionary *readDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/zhuhouli.plist"];
      NSLog(@"readDict = %@",readDict);


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马