一:字典的基本概念

创新互联主要从事成都网站制作、成都网站建设、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务内江,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

    Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.

通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.

此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象

二:不可变字典-NSDictionary

   1:初始化(以一个元素和多个元素进行初始化):

     //以一个键值对象 进行初始化

NSDictionary*dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@"key1"];NSLog(@"%@",dict1);//以多个元素进行初始化NSDictionary*dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1,@"key1",numObj2,@"key2", nil];NSLog(@"%@",dict2);
2:获取字典的数量
	

//获取字典的数量

       NSInteger count=[dict2count];

       NSLog(@"%ld",count);

3:根据key获取相应的value对象

//根据key获取相应的value对象

NSString*value=[dict2 objectForKey:@"key1"];NSLog(@"%@",value);
4:把字典的key转换成枚举对象用于遍历

NSEnumerator*enumerator=[dict2 keyEnumerator];
5:获取所有的key集合

//获取所有的key集合

NSArray*keys=[dict2 allKeys];NSLog(@"%@",keys);
6:获取所有的value集合

//获取所有的value集合

NSArray*values=[dict2 allValues];NSLog(@"%@",values);
三:可变字典NSMutableDictionary继承自NSDictionary

1:初始化字典

//初始化字典NSMutableDictionary*mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
2:向字典中添加指定的字典

//向一个字典中添加一个字典

NSDictionary*dict4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];[mutableDic addEntriesFromDictionary:dict4];NSLog(@"%@",mutableDic);
3:向字典中添加value和key


//向字典中添加value和key[mutableDicsetValue:@"object" forKey:@"key"];
4:创建空的字典,然后设置新的一个字典
//创建空的字典,然后设置新的一个字典,把会之前的字典全部覆盖掉NSMutableDictionary*mutableDict2=[NSMutableDictionary dictionary];[mutableDict2setDictionary:mutableDic];NSLog(@"%@",mutableDict2);
5:删除指定key的value值

//移除指定key的value值[mutableDict2 removeObjectForKey:@"k4"];NSLog(@"%@",mutableDict2);
6:删除移除key集合的value值

//删除一组key的value值NSArray*arrayKeys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];[mutableDict2 removeObjectsForKeys:arrayKeys];NSLog(@"%@",mutableDict2);
7:删除字典中所有的value

//删除字典中所有的数据

[mutableDict2 removeAllObjects];NSLog(@"%@",mutableDict2);
四:枚举遍历

1:一般遍历

//一般遍历

NSArray*allKeys=[mutableDic allKeys];for(NSInteger i=0; i<[allKeys count]; i++){    NSString*obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];                 NSLog(@"%@",obj);}

2:快速枚举

//快速遍历

for(id key in mutableDic){NSString*object=[mutableDic objectForKey:key];NSLog(@"%@",object);}
3:迭代器枚举

//枚举器NSEnumerator*enumerator1=[mutableDic keyEnumerator];         id key=[enumerator1 nextObject];while(key){             id object=[mutableDic objectForKey:key];    NSLog(@"%@",object);             key=[enumerator1 nextObject];}