OC中Foundation框架之NSDictionary、NSMutableDictionary

NSDictionary概述

NSDictionary的作用类似:通过一个key ,就能找到对应的value
同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改

NSDictionary创建

 1  +(instancetype) dictionary;
 2  +(instancetype)dictionaryWithObject:(id) object forKey:(id<NSCopying>)key;//objectForKey,根据键取值
 3  +(instancetype)dictionaryWithObjectsAndKeys:(id)firstObject,...;
 4  
 5  例:
 6     先值,后key 自动组成一对,另外类似java的map 存入后的数据时无序的
 7      [NSDictionary dictionaryWithObjectAndKeys:@"张三",@"zs",@"李四",@"ls",nil];
 8 
 9     快速创建字典
10     NSDictionary *dictator =@{@"zs":@"zhangsan",@"ls":@"lisi",@"ww":@"wangwu"};
11 
12     注意:key值不能重复,在java中key重复时,会覆盖value,而oc中key重复则不会存入;

NSDictionary的基本使用

1 //返回字典的键值对数目
2 -(NSUInteger)count;
3 //根据key取出value
4 -(id)objectForKey:(id)aKey;

NSDictionary的遍历

 1 使用增强型for循环
 2 for(NSString *str in NSDictionary){
 3           NSString *ss =[ dic objectForKey:str]
 4           NSLog(@"%@ --->%@",str,ss);  
 5 }
 6 
 7 使用block进行遍历
 8 [ns enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
 9            NSLog(@"%@---->%@",key,id);
10         }]

NSDictionary的文件操作

 1 将NSDictionary写入文件中
 2 -(BOOL)writeToFile:(NSString *)path atomically:(BOOL) useAuxiliaryFile ;
 3 -(BOOL) writeToURL:(NSURL *)url atomically:(BOOL) atomically;
 4 
 5 例:
 6     //写入文件    
 7     NSDictionary *dictator=@{@"zs":@"zhangsan",@"ls":@"lisi",@ww":@wanggu"};
 8 
 9     [dict3 writeToFile:@"/Users/liwei/Desktop/dict.plist" atomically:YES];
10 
11    //读取文件
12    NSDictionary *dict4=[NSDictionary dictionaryWithContentsOfFile:@"/Users/liwei/Desktop/dict.plist"] 

NSMutableDictionary概述

1 什么是NSMutableDictionary
2 NSMutableDictionary 是NSDictionary得子类
3 NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素
4 NSMutableDictionary 是可变的,可以随时往里面添加、更改、删除元素

NSMutableDictionary常用方法

1 添加一个键值对(会把aKey之前对应的值给替换掉)
2 -(void)setObject :(id) anObject forKey:(id <NSCopying>)aKey;
3 通过aKey删除对应的value
4 -(void)removeObjectForKey:(id)aKey;
5 通过aKey删除对应的value
6 -(void)removeAllObjects;
7 删除所有的键值对

NSMutableDictionary简写形式

1 NSMutableDictionary *dict =[NSMutableDictionary dictionary];
2 //快速创建字典
3 dict.dictionary = @{@"name":@"bbb",@"age":@"18"};
4 //添加值到Dicitonary中
5 [dict setObject:@"man" forKey:@"sex"];
6 //查看字典内容
7 NSLog(@"%@",dict);

NSDictionary与NSArray对比

 1 区别:
 2     1)NSArray是有序的,NSDictionary是无序的
 3     2)NSArray是通过下标访问元素,NSDictionary是通过key访问元素
 4 
 5 NSArray的用法
 6     1)创建
 7     @[@"java",@"rose"](返回是不可变数组)
 8     2)访问
 9     id d =array[1];
10     3)赋值
11     array[1]=@"jack";
12    
13 NSDictionary的用法
14     1)创建
15     @{@"name";@"jack",@"phone":@"10086"}(返回是不可变字典)
16     2)访问
17     id d =dict[@"name"];
18     3)赋值
19     dict[@"name"]=@"jack";

 

posted @ 2015-05-16 17:31  王世桢  阅读(321)  评论(0编辑  收藏  举报