您的位置:首页 > 其它

oc之可变字典创建 添加 删除 遍历

2016-01-08 14:05 513 查看
//创建字典
NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]
initWithObjectsAndKeys:@"jay",@"name",
@"22",@"age",
@"f",@"gender", nil];
NSLog(@"%@",mutableDic);
//创建空的字典
NSMutableDictionary *mutab=[NSMutableDictionary dictionary];
//将字典mutableDic复制到mutab中
[mutab setDictionary:mutableDic];


//添加键值对的方式(向字典内添加一组键值)
NSDictionary *dict1=[NSDictionary dictionaryWithObject:@"166" forKey:@"height"];
[mutableDic addEntriesFromDictionary:dict1];
NSLog(@"%@",mutableDic);
//直接添加方式如果key存在时,就是修改对应的value值,如果不存在则是添加
[mutableDic setValue:@"66" forKey:@"weight"];
NSLog(@"%@",mutableDic);


//将字典中对应key的值删除
[mutableDic removeObjectForKey:@"weight"];
//删除一组key对应的value值
[mutableDic removeObjectsForKeys:@[@"height",@"age"]];
//删除所有value值
[mutableDic removeAllObjects];


//遍历
//(1) 1.先找到所有key 2.计算key的个数,用来循环 3.通过key的数组找到对应key的值 (这种方法较慢)
NSArray *keyss=[mutableDic allKeys];
NSUInteger count=[mutableDic count];
for(int i=0;i<count;i++){
id key=[keyss objectAtIndex:i];
NSLog(@"%@",[mutableDic objectForKey:key]);
}
//(2) 快速枚举  for in 语句 注意不能在改循环内对数组进行删除和增加 (即不能改变数组成员个数)
for(id key in mutableDic){
id obj=[mutableDic objectForKey:key];
NSLog(@"%@",obj);
}
//(3)通过枚举对象 进行枚举
//1.将字典里的key转成枚举对象,用于遍历
NSEnumerator *keyenums=[mutableDic keyEnumerator];
id key;
while(key){                        //直到key为空时结束循环
id obj=[mutableDic objectForKey:key];//通过key取到value
NSLog(@"%@",obj);
key=[keyenums nextObject];     //将枚举中下一个对象赋值给key
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: