IOS开发之OC篇(4)—— NSDictionary、NSMutableDictionary
来源:互联网 发布:php虚拟主机销售系统 编辑:程序博客网 时间:2024/05/18 04:03
版本
一、不可变字典NSDictionary
字典就是,key和value成对相对应地存入dictionary。key为字符串,value为所有对象Object,可以是string、array等等。
//创建:value1,key1,value2,key2...,(key和value成对出现)
//value:OC的任何对象都可以,
NSDictionary *dic11 = [NSDictionary dictionaryWithObjectsAndKeys:@"aabbb",@"1",@"dddeee",@"2",nil];
NSLog(@"dic = %@",dic11);
//key1:value1,key2:value2...
//@{}只能用于创建不可变字典
NSDictionary *dic1 = @{@"One":@"11",@"Two":@"22",@"Three":@"22"};
NSLog(@"dic1 = %@",dic1);
//通过key值访问value值
NSString *strDic = [dic1 valueForKey:@"Two"];
NSLog(@"strDic = %@",strDic);
//访问value,dic [key]
NSString *strDic1 = dic1[@"Two"];
NSLog(@"strDic1 = %@",strDic1);
//遍历字典,遍历key值
NSArray *keyArr = [dic1 allKeys];
for(NSString *keyin keyArr) {
NSLog(@"key = %@",key);
}
//通过value,获取具有相同value的key array
NSArray *keyArr1 = [dic1 allKeysForObject:@"22"];
//遍历Value值,返回所有的Value值
NSArray *valArr = [dic1 allValues];
for(id valuein valArr) {
NSLog(@"value = %@",value);
}
//默认遍历key值
for(id objin dic1) {
NSLog(@"obj = %@",dic1[obj]);
}
二、可变字典NSMutableDictionary
//实例化一个空的可变字典
NSMutableDictionary *dic2 = [NSMutableDictionary dictionary];
// NSMutableDictionary *dic2 = [[NSMutableDictionary alloc]init];
//通过一个数组实例化一个可变字典
NSMutableDictionary *dic3 = [NSMutableDictionary dictionaryWithObjects:@[@"1",@"2",@"3"] forKeys:@[@"One",@"Three",@"Three"]];
NSLog(@"dic3 = %@",dic3);
//添加元素(当字典内不存在此key值)
[dic3 setObject:@"4" forKey:@"Four"];
//修改value值(当字典内存在此key值)
[dic3 setObject:@"11" forKey:@"One"];
//通过key值获取value值
NSString *rstr = [dic3 valueForKey:@"Two"];//dic3[@"Two"];
//删除,删除键值对
[dic3 removeObjectForKey:@"One"];
//删除所有数组中含有的key值的键值对
[dic3 removeObjectsForKeys:@[@"Four",@"Three"]];
//删除所有键值对
[dic3 removeAllObjects];
NSArray栗子:
先创建一个plist文件,并取名dict3,等下我们将通过这个名字来查找内容:
填入key和value:
然后来到main方法:
int main(int argc, char * argv[]) { //@{}只能用于创建不可变字典(注意:先key后value) NSDictionary *dict1 = @{@"role":@"Invincible Eastern",@"age":@"30",@"sex":@"male&female"}; NSLog(@"%@",dict1); //value:OC的任何对象都可以(注意:先value后key) NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"the monkey king",@"role",@"500",@"age",@"male",@"sex", nil]; NSLog(@"%@",dict2); //查plist文件 NSDictionary *dict3 = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"dict3" ofType:@"plist" ]]; NSLog(@"%@",dict3); NSLog(@"%@",dict3[@"role"]); //访问value NSLog(@"%@",[dict2 valueForKey:@"age"]); NSLog(@"%@",[dict2 objectForKey:@"age"]); NSLog(@"%@",dict2[@"age"]); //遍历value NSArray *valArr = [dict2 allValues]; for(id value in valArr){ NSLog(@"value = %@",value); } //获取具有相同value的key array NSArray *keyArr1 = [dict2 allKeysForObject:@"500"]; NSLog(@"500的key为%@",keyArr1); //遍历key NSArray *keyArr2 = [dict2 allKeys]; for(id value in keyArr2){ NSLog(@"key = %@",value); } //默认遍历keu for(id value in dict2){ NSLog(@"obj = %@",dict2[value]); }}结果如下:
NSMutableDictionary栗子:
int main(int argc, char * argv[]) { //实例化一个可变字典 NSMutableDictionary *dic1 = [NSMutableDictionary dictionary]; //NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]init]; NSLog(@"dic1 = %@",dic1); //通过一个数组实例化一个可变字典 NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjects:@[@"Invincible Eastem",@"30"] forKeys:@[@"role",@"age"]]; NSLog(@"dic2 = %@",dic2); //添加元素(当字典内不存在此key值) [dic2 setObject:@"male" forKey:@"sex"]; NSLog(@"sex = %@",dic2); //修改value值(当字典内存在此key值) [dic2 setObject:@"female" forKey:@"sex"]; NSLog(@"sex = %@",dic2); //通过key值获取value值 NSLog(@"sex = %@",[dic2 valueForKey:@"sex"]); NSLog(@"sex = %@",dic2[@"sex"]); //删除键值对 [dic2 removeObjectForKey:@"role"]; [dic2 removeObjectsForKeys:@[@"role",@"age"]]; //删除所有键值对 [dic2 removeAllObjects]; NSLog(@"sex = %@",dic2);}输出结果:
- IOS开发之OC篇(4)—— NSDictionary、NSMutableDictionary
- 【IOS 开发学习总结-OC-31】★★OC之foundation 框架——字典(NSDictionary 与 NSMutableDictionary)
- OC基础—集合之NSSet、NSDictionary(字典)、NSMutableDictionary
- iOS开发之NSDictionary与NSMutableDictionary
- OC之字典(NSDictionary, NSMutableDictionary)
- iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet
- ios开发——NSDictionary与NSMutableDictionary相关
- (转)IOS开发——NSDictionary以及NSMutableDictionary用法总结
- OC思维导图之NSDictionary&NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- NSDictionary,NSMUtableDictionary-OC+class
- oc NSDictionary NSMutableDictionary
- ios之NSDictionary、NSMutableDictionary使用小结
- IOS学习之NSDictionary和NSMutableDictionary详解
- iOS集合之NSDictionary与NSMutableDictionary
- FAAC源码阅读(1)——AAC和音频编码的介绍
- hdoj 2035
- 【Java并发编程实战】----- AQS(四):CLH同步队列
- POJ 1837-Balance(01背包-天平平衡)
- HTML DOM addEventListener() 方法
- IOS开发之OC篇(4)—— NSDictionary、NSMutableDictionary
- (@WhiteTaken)设计模式学习——简单工厂模式
- POJ 3393Lucky and Good Months by Gregorian Calendar(模拟)
- 高并发服务端分布式系统设计概要(下)
- Spring Cache原理与使用及ICOP平台中的缓存应用
- Uva1601 The Morning after Halloween【隐式图bfs+图重建】【例题7-9】
- Map遍历的四种方法
- 764A
- MVC模式 (基本理解)