1:NSDictionary由于是不可变的,所以一般会在创建的时候加入数据,一般有两种方式:一种类方法,一种对象方法
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"Mike", @"name", @"BeiJing", @"address", nil];
NSDictionary *dict=[[NSDictionary alloc]initWithObjectsAndKeys:obj,key,obj2,key2];
键值对一一对应,可以有同样的值,不允许有同样的key,有个对象方法[dict count]表示键值对个数
有个类方法,可以分开传两个数组,一个放键,一个放值,一一对应[NSDictionary dictionaryWithObjects:NSArray* forkeys:NSArray]
字典的元素访问都是通过key访问值:
遍历字典:1:快速遍历法
for (id key in dict){id obj=[dict objectForKey:key];}
2:通过block
[dict enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){NSLog(@"%@==%@",key,obj);} ]
*stop是用来停止遍历的 ,通过*stop=YES
2:NSMultableDictionary
作为 NSDictionary的子类,继承了父类的所有方法,由于multable是可变的,所以可以不用创建的时候就插入数据
可以通过[dict setObject:@"mike" forkey:@"name"];添加数据,也可以通过[dict removeObjectForKey:]来移除数据
3:字典的内存管理
往字典中插入OC对象,OC对象计数器就会加1,在字典销毁或者,移除数据的时候就会-1,不需要用户去管理内存