黑马程序员——NSDictionary和NSMutableDictionary的介绍及使用
来源:互联网 发布:魔兽世界7.0nga数据库 编辑:程序博客网 时间:2024/06/15 04:26
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
第一讲 NSDictionary的介绍及使用
NSDictionary介绍
1)什么是NSDictionary
NSDictionary翻译过来叫做”字典”
日常生活中, “字典”的作用: 通过一个拼音或者汉字, 就能找到对应的详细解释
NSDictionary的作用类似: 通过一个key(键), 就能找到对应的value(值)
NSDictionary是不可变的, 一旦初始化完毕, 里面的内容就无法修改
2)NSDictionary的创建
+ (instancetype)dictionary;
+ (instancetype)dictionaryWithObject:(id)object forKey:(id <NSCopying>)key; // objectForKey,根据键取值。
+ (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...;
//创建一个字典,并且初始化key和value的值NSDictionary*dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];NSLog(@"%@",dict2);3)快速创建字典
@{@"zs" : @"zhangsan", @"ls" : @"lisi", @"ww" : @"Wangwu"};
4)键值对集合的特点
1. 字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复)
2. 键值对中存储的数据是"无序的".
3. 键值对集合可以根据键, 快速获取数据.
NSDictionary基本使用方法
-(NSUInteger)count;
返回字典的键值对数目
-(id)objectForKey:(id)aKey;
根据key取出value
NSDictionary遍历方法
1)快速遍历
for (NSString *key in dict) { }
//快速创建字典NSDictionary *dict1 = @{@"zs":@"zhangsan",@"ls":@"lisi",@"ww":@"wangwu"};for(NSString *keyStr in dict3){ NSLog(@"%@",keyStr);}//此时这样遍历得到的是字典的所有的key//并没有得到key的值//想要得到值,还需要进一步调用方法for(NSString *keystr in dict3){ NSLog(@"%@=%@",keystr,[dict3 objectForKey:keyStr]);}2)Block遍历
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {}];
//快速创建字典NSDictionary *dict1 = @{@"zs":@"zhangsan",@"ls":@"lisi",@"ww":@"wangwu"};for(NSString *keyStr in dict3){ NSLog(@"%@",keyStr);}//此时这样遍历得到的是字典的所有的key//并没有得到key的值//想要得到值,还需要进一步调用方法for(NSString *keystr in dict3){ NSLog(@"%@=%@",keystr,[dict3objectForKey:keyStr]);}//使用block遍历[dict3 enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){ NSLog(@"key--->%@=%@<---value",key,obj);}]
NSDictionary的简写形式
1)NSDictionary的创建
以前
[NSDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"男", @"sex", nil];
现在
@{@"name": @"Jack", @"sex" : @"男”};
2)NSDictionary获取元素
以前
[dict objectForKey:@"name”];
现在
dict[@"name”];
NSDictionary文件操作
将字典写入文件中
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
-(BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
//快速创建字典NSDictionary*dict3 = @{@"zs": @"zhangsan", @"ls": @"lisi", @"ww": @"Wangwu"};;//将字典写入到文件中[dict3 writeToFile:@"/Users/liwei/Desktop/dict.plist"atomically:YES];把多个dict加到array中调用array的writeToFile方法。
//快速创建字典NSDictionary*dict2 = @{@"x": @"xyz", @"a": @"abc", @"d": @"def"};NSDictionary*dict3 = @{@"zs": @"zhangsan", @"ls": @"lisi", @"ww": @"Wangwu"};;NSArray*arr = @[dict2,dict3];//将数组写入到文件中[arr writeToFile:@"/Users/liwei/Desktop/dict.plist"atomically:YES];NSLog(@"写入成功!");从文件中读取字典到内存中
保存结果是xml文件格式,但苹果官方推荐为plist后缀。
把字典放到NSArray中,调用array的writeToFile
+ (id)dictionaryWithContentsOfFile:(NSString *)path;
+ (id)dictionaryWithContentsOfURL:(NSURL *)url;
NSDictionary使用注意
字典中的键不要重复。(虽然重复也不报错,会自动取在前面的那个)
第二讲 NSMutableDictionary介绍和使用
什么是NSMutableDictionary
NSMutableDictionary是NSDictionary的子类
NSDictionary是不可变的, 一旦初始化完毕后, 它里面的内容就永远是固定的, 不能删除里面的元素, 也不能再往里面添加元素
NSMutableDictionary是可变的, 随时可以往里面添加\更改\删除元素
NSMutableDictionary常用方法
-(void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
添加一个键值对(会把aKey之前对应的值给替换掉)
-(void)removeObjectForKey:(id)aKey;
通过aKey删除对应的value
-(void)removeAllObjects;
删除所有的键值对
NSMutableDictionary简写形式
快速创建可变字典
dict.dictionary = @{@"name" : @"bob", @"age" : @"18"};
设置键值对
以前
[dict setObject:@"Jack" forKey:@"name”];
现在
dict[@"name"] = @"Jack";
NSDictionary和NSArray对比
NSArray和NSDictionary的区别
1> NSArray是有序的,NSDictionary是无序的
2> NSArray是通过下标访问元素,NSDictionary是通过key访问元素
NSArray的用法
1> 创建
@[@"Jack", @"Rose"] (返回是不可变数组)
2> 访问
id d = array[1];
3> 赋值
array[1] = @"jack";
NSDictionary的用法
1> 创建
@{ @"name" : @"Jack", @"phone" : @"10086" } (返回是不可变字典)
2> 访问
id d = dict[@"name"];
3> 赋值
dict[@"name"] = @"jack";
- 黑马程序员——NSDictionary和NSMutableDictionary的介绍及使用
- 黑马程序员———OC语言 NSDictionary和 NSMutableDictionary的介绍
- 黑马程序员 --- NSDictionary和NSMutableDictionary的用法
- 黑马程序员——Foundation学习—-----NSDictionary和NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 黑马程序员---NSDictionary\NSMutableDictionary
- 黑马程序员——Foundation学习之NSDictionary\NSMutableDictionary
- 黑马程序员—Foundation框架之NSDictionary与NSMutableDictionary
- 黑马程序员 - OC语言 - NSDictionary的介绍及使用
- NSDictionary 和NSMutableDictionary介绍
- 05.黑马程序员-NSDictionary、NSMutableDictionary
- 黑马程序员——NSDictionary和NSDate的使用
- 黑马程序员----OC学习之NSDictionary及NSMutableDictionary
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- NSDictionary和NSMutableDictionary的基本使用
- 黑马程序员--NSMutableDictionary的使用
- 黑马程序员———Objctive-C———【NSDictionary、NSMutableDictionary、NSFileManager】
- 黑马程序员——Objective-C学习之不可变与可变字典(NSDictionary\NSMutableDictionary)
- 对于spring cloud的学习笔记(一)
- Hadoop - 实时查询Drill
- 再谈对设计模式的理解
- V4L2驱动程序架构
- tomcat 配置文件server.xml详解
- 黑马程序员——NSDictionary和NSMutableDictionary的介绍及使用
- uva 1347——Tour
- 装系统心得
- [1412]:{A} + {B}
- Linux V4L2驱动架构解析与开发导引
- java.lang.IllegalStateException:
- fiddler在不同场景下的强大作用
- 随机数的探究
- c++ 11 多线线程系列--------使用锁和条件变量的线程安全队列