——黑马程序员——OC中Foundation框架NSDictionary的使用
来源:互联网 发布:ubuntu jenkins git 编辑:程序博客网 时间:2024/05/16 13:52
-----------android培训、java培训、java学习型技术博客、期待与您交流!-----------
OC中Foundation框架NSDictionary的使用
一、NSDictionary基本概念
NSDictionary是用来存放一对键值,可以通过一个key(键),就能找到对应的value(值)。NSDictionary 是不可变的,一旦初始化完毕后,里面的内容无法修改
二、NSDictionary的创建
1、创建一个空字典
+(instancetype) dictionary;
NSDictionary *d1 = [NSDictionary dictionary ];
2、创建一个字典添加一组键值
+(instancetype) dictionaryWithObject:(id) forKey: (id <NSCopying> ) ; // 根据键取值
NSDictionary *d2 = [NSDictionary dictionaryWithobject:@ "zhangsan" forKey :@"zs" ];
3、创建一个字典添加多组键值
+(instancetype) dictionaryWithObjectsAndKeys: (id) firstObject,....;
NSDictionary *d3 = [NSDictionary dictionaryWithObjectsAndKeys:@ "vaule1" , @"k1" , @ "vaule2" , @"k2" , nil ];
4、快速创建一个字典(简写形式)
NSDictionary *d4 = @{ @"key1":@"value1", @"key2":@"value2" , @"key3":@"value3" };
5、以快速方式访问字典(简写形式)
NSString *str = dict[@"key2"];
根据key2的键值快速获取value2的值
注意:
1、输出打印时以%@格式输出,用大括号括起来,打印键值时是无序的,
2、NSDictionary 的key值和value值都必须是对象类型
3、key值不能重复,如果最后添加的将不能被保存
三、NSDictionary的基本使用
1、获取NSDictionary的长度
-(NSUInteger) count;
获取字典d4的长度
NSLog(@"%lu", d4.count );
2、根据key值取出value值
-(id) objectForKey:(id)aKey;
NSString * str = [d4 objectForKey:@"zs"];
四、NSDictionary 的遍历
当使用for循环时只能获取字典的key值,而不能获得value值
第一种遍历方法:快速枚举法
1、先获取所有的key的值,使用快速枚举法(for in循环增强)
2、在根据key值获取value的值
for(NSString * key in d4){
NSLog(@"key = %@ value = %@" , key, [d4 objectForKey: key] ) ;
}
第二种方法:block-(void) enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop )block
[ d4 enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop ){
NSLog(@"%@——%@", key , obj);
} ];
五、NSDictionary的文件操作
1、把字典保存到文件中
-(BOOL)writeToFile: (NSString *) path atomically: (BOOL) ;
[d4 writeToFile: @”文件路径" atomically: YES/NO] ;把字典d4 写入到文件中 返回的是BOOL类型的
-(BOOL)writeToURL: (NSURL *) url atomically: (BOOL) atomically;
2、从文件中读取字典
-(instancetype) dictionaryWithContentsOfFile: (NSString *);
NSDictionary *dict = [ NSDictionary dictionaryWithContentsOfFile: @"文件路径"];
注意:
字典可以用作离线数据的编写
六、NSMutableDictionary 的使用及注意事项
NSMutableDictionary 和 NSMutableString、NSMutableArray的用法基本相同
1、添加一组键值对
-(void) setObject:(id)anObject forKey:(id);
2、通过一个key删除对应的value值
-(void)removeObjectForkey:(id);
3、
给字典添加键值时如果key相等时不能添加的
根据key值修改字典中value值时可以 简写
d4 [@"zs"] = @"***"; 把字典d4 中key值为zs的值该为***
NSArray和NSDictionary的区别
1、NSArray 是有序的, NSDictionary 是无序的
2、NSArray 是通过下标访问元素, NSDictionary 是通过key访问元素
3、 NSArray 是通过[]创建, NSDictionary 是通过{ }创建
4、 NSArray 是通过@“赋值内容”直接赋值, NSDictionary 是通过key值赋值
- ——黑马程序员——OC中Foundation框架NSDictionary的使用
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSMutableString
- 黑马程序员——OC中Foundation框架
- 黑马程序员——OC中Foundation框架
- 黑马程序员—Foundation框架之NSDictionary与NSMutableDictionary
- 黑马——OC的Foundation框架
- 黑马程序员——11、OC语言(Foundation框架的简单使用)
- 黑马程序员——ios学习笔记 OC Foundation—NSArray&NSDictionary
- 黑马程序员——OC基础---Foundation<NSArray补充,NSMultableArray,NSDictionary>
- 黑马程序员——OC基础05—Foundation框架
- 黑马程序员—OC语言基础—Foundation框架小结
- 黑马程序员——OC笔记之Foundation框架上
- 黑马程序员——OC笔记之Foundation框架下
- 黑马程序员——oc之Foundation框架
- 黑马程序员——OC语言加强---Foundation框架介绍
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- 【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray
- spring面试题
- 第九周--数据结构--矩阵的基本运算操作
- CC的生活
- 一幅图看看mongondb对企业级数据的管理
- 模拟spring - 简单实现spring IOC
- ——黑马程序员——OC中Foundation框架NSDictionary的使用
- android studio 项目出错之build.gadle
- 2014年---移动端webapp个人年度总结
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- [2035]:人见人爱A^B
- Linux下各文件夹的含义
- 项目报错相关
- 解析Spring IOC原理——工厂模式与反射机制的综合应用
- 使用easyui图片上传的三点注意