Foundation框架--NSDictionary的使用
来源:互联网 发布:遗传算法工具箱怎么用 编辑:程序博客网 时间:2024/06/06 00:01
一、NSDictionary介绍
1、NSDictionary的介绍
NSDictionary翻译过来叫做”字典”
日常生活中, “字典”的作用: 通过一个拼音或者汉字, 就能找到对应的详细解释。
NSDictionary的作用类似: 通过一个key(键), 就能找到对应的value(值) NSDictionary是不可变的, 一旦初始化完毕, 里面的内容就无法修改。
2、NSDictionary的创建
1)创建空字典
NSDictionary *d1 = [NSDictionary dictionary];NSLog(@"d1 = %@",d1);
打印结果:
d1 = {
}
2)创建只有一组键值对的字典
NSDictionary *d2 = [NSDictionary dictionaryWithObject:@"jiaozuo" forKey:@"H"];NSLog(@"d2 = %@",d2);
打印结果:
d2 = {
H = jiaozuo;
}
3)创建多组键值对的字典
NSDictionary *d3 = [NSDictionary dictionaryWithObjectsAndKeys:@"jiaozuo",@"H",@"zhengzhou",@"A",@"luoyang",@"C", nil];NSLog(@"d3 = %@",d3);
打印结果:
d3 = {
A = zhengzhou;
C = luoyang;
H = jiaozuo;
}
4)快速创建一个字典@{key值:value值}
NSDictionary *d4 = @{ @"S":@"dazhou",@"A":@"chengdu" };NSLog(@"d4 = %@",d4);
打印结果:
d4 = {
A = chengdu;
S = dazhou;
}
3、键值对集合的特点
1)字典存储的时候,必须是”键值对”的方式来存储(同时键不要重复)
2) 键值对中存储的数据是”无序的”.
3) 键值对集合可以根据键, 快速获取数据.
二、NSDictionary基本使用方法
1、获取字典长度
NSLog(@"d4.count = %lu",d4.count);
打印结果:
d4.count = 2
2、根据key值取出value值
NSString *str1 = [d4 valueForKey:@"A"];NSString *str2 = [d4 objectForKey:@"A"];NSLog(@"str1 = %@",str1);NSLog(@"str2 = %@",str2);
打印结果:
str1 = chengdu
str2 = chengdu
三、NSDictionary遍历方法
1、增强for循环方法
NSDictionary *d5 = @{ @"A":@"zhengzhou",@"C":@"luoyang",@"H":@"jiaozuo" }; //第一步:获取所有的key //第二步:根据key获取value值 for (NSString *key in d5) { NSLog(@"key = %@,value = %@",key,[d5 valueForKey:key]); }
打印结果:
key = A,value = zhengzhou
key = C,value = luoyang
key = H,value = jiaozuo
2、block方法
[d5 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {NSLog(@"key = %@,value = %@",key,obj); }];
打印结果:
key = A,value = zhengzhou
key = C,value = luoyang
key = H,value = jiaozuo
三、NSDictionary的文件操作
1、把字典保存到文件中
//简写形式定义一个字典NSDictionary *d1 = @{ @"jz":@"jiaozuo",@"ly":@"luoyang",@"zz":@"zhengzhou" };NSLog(@"d1 = %@",d1);//简写形式获取key对应的value值NSLog(@"%@",d1[@"jz"]);//把字典保存到文件中if([d1 writeToFile:@"/Users/leikai/Desktop/d1.plist" atomically:YES]){ NSLog(@"写入成功"); }else{ NSLog(@"写入失败"); }
打印结果:
d1 = {
jz = jiaozuo;
ly = luoyang;
zz = zhengzhou;
}
jiaozuo
写入成功
写入结果:
2、从文件中读取字典
NSDictionary *d2 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/leikai/Desktop/d1.plist"];NSLog(@"d2 = %@",d2);
3、字典包含数组并读写操作
1)写入操作
NSArray *hnArr = @[@"zhengzhou",@"luoyang",@"jiaozuo"];NSArray *scArr = @[@"chengdu",@"dazhou"];NSDictionary *d3 = @{ @"hn":hnArr,@"sc":scArr };if ([d3 writeToFile:@"/Users/leikai/Desktop/d3.plist" atomically:YES]) { NSLog(@"写入成功"); }else{ NSLog(@"写入失败"); }
打印结果:
写入成功
写入结果:
2)读取操作
NSDictionary *d5 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/leikai/Desktop/d3.plist"];NSLog(@"d5 = %@",d5);//遍历[d5 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {//获取每个元素for (NSString *str in obj) { NSLog(@"%@",str); } }];//获取每个数组NSArray *hnArr = d5[@"hn"];NSLog(@"hnArr = %@",hnArr);NSArray *scArr = d5[@"sc"];NSLog(@"scArr = %@",scArr);
打印结果:
d5 = {
hn = (
zhengzhou,
luoyang,
jiaozuo
);
sc = (
chengdu,
dazhou
);
}
zhengzhou
luoyang
jiaozuo
chengdu
dazhou
hnArr = (
zhengzhou,
luoyang,
jiaozuo
)
scArr = (
chengdu,
dazhou
)
- Foundation框架--NSDictionary的使用
- Cocoa Foundation 框架:NSDictionary字典的使用
- Foundation框架NSDictionary
- ios - Foundation框架 - NSDictionary
- Foundation框架之NSDictionary
- foundation的使用——NSDictionary
- ——黑马程序员——OC中Foundation框架NSDictionary的使用
- 黑马程序员-Foundation框架-NSDictionary
- Foundation框架 —— NSDictionary
- Foundation框架基础 NSDictionary-字典
- Foundation框架-03 NSDictionary
- 【黑马程序员】Foundation框架NSDictionary
- Foundation框架中的NSDictionary 、NSMutableDictionary
- Foundation框架第七弹:NSDictionary的常用方法
- 黑马程序员------Foundation框架------NSDictionary字典
- Foundation框架 - NSDictionary类、NSMutableDictionary类
- Foundation框架之NSMutableString、NSMutableArray和NSDictionary
- 22 Foundation框架之NSDictionary和NSMutableDictionary
- 第七周 项目1-建立顺序环形队列算法库
- ubuntu下允许root用户ssh远程登录
- 第六周项目5--后缀表达式
- 科普:什么是脑死亡?
- 数据结构实践——队列数组
- Foundation框架--NSDictionary的使用
- 数据结构实践——排队看病模拟
- oracle数据库之解锁
- 莫队算法
- 第七周上机实践项目4——队列数组
- 2015-10-16 【项目4 - 数制转换】
- Vijos1754 最优贸易
- 第四周项目2——建设“单链表”算法库
- 建立顺序环形队列算法库 .