------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、NSDictionary的介绍及使用
1、什么是NSDictionary
NSDictionary翻译过来叫做”字典”。
日常生活中, “字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释。
NSDictionary的作用类似:通过一个key(键),就能找到对应的value(值)。
NSDictionary是不可变的,一旦初始化完毕, 里面的内容就无法修改。
2、NSDictionary的创建
//创建一个字典,并且初始化key和value值
NSDictionary*dict2 = [NSDictionarydictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
3、快速创建字典
NSDictionary *dict3 = @{@"zs" : @"zhangsan", @"ls" : @"lisi", @"ww" : @"Wangwu"};
4、键值对集合的特点
1)字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复);
2)键值对中存储的数据是"无序的";
3)键值对集合可以根据键, 快速获取数据。
5、NSDictionary基本使用方法
-(NSUInteger)count;
返回字典的键值对数目
-(id)objectForKey:(id)aKey;
根据key取出value
6、NSDictionary遍历方法
1)快速遍历
//快速创建字典
NSDictionary *dict3 = @{@”zs”:@”zhangsan”,@”ls”:@”lisi”,@”ww”:@”wangwu”};
//遍历
for(NSString *keyStr in dict3){
NSLog(@”%@”,keyStr);
}
2)Block遍历
//快速创建字典
NSDictionary *dict3 = @{@”zs”:@”zhangsan”,@”ls”:@”lisi”,@”ww”:@”wangwu”};
//遍历
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
}];
二、NSDictionary的简写及文件操作
1、NSDictionary的简写形式
1)NSDictionary的创建
//以前
[NSDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"男", @"sex", nil];
//现在
@{@"name": @"Jack", @"sex" : @"男”};
2)NSDictionary获取元素
//以前
[dict objectForKey:@"name”];
//现在
dict[@"name”];<span style="font-size:18px;"> </span>
2、NSDictionary文件操作
1)写入一个字典数据
//快速创建字典
NSDictionary*dict3 = @{@"zs": @"zhangsan", @"ls": @"lisi", @"ww": @"Wangwu"};
//将字典写入到文件中
[dict3 writeToFile:@"/Users/liwei/Desktop/dict.plist"atomically:YES];
2)把多个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(@"写入成功!");
3)从文件中读取字典到内存中
+ (id)dictionaryWithContentsOfFile:(NSString *)path;
保存结果是xml文件格式,但苹果官方推荐为plist后缀。
把字典放到NSArray中,调用array的writeToFile
+ (id)dictionaryWithContentsOfURL:(NSURL *)url;
3、NSDictionary使用注意
字典中的键不要重复。(虽然重复也不报错,会自动取在前面的那个)。
三、 NSMutableDictionary介绍和使用
1、NSMutableDictionarry的介绍
NSMutableDictionary是NSDictionary的子类,NSDictionary是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素, 也不能再往里面添加元素。NSMutableDictionary是可变的,随时可以往里面添加、更改、删除元素
2、NSMutableDictionary常用方法
-(void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
添加一个键值对(会把aKey之前对应的值给替换掉)
-(void)removeObjectForKey:(id)aKey;
通过aKey删除对应的value
-(void)removeAllObjects;
删除所有的键值
3、NSMutableDictionary简写形式
//快速创建可变字典
dict.dictionary = @{@"name" : @"bob", @"age" : @"18"};
设置键值对
//以前
[dict setObject:@"Jack" forKey:@"name”];
//现在
dict[@"name"] = @"Jack";
4、NSDictionary和NSArray对比
NSArray和NSDictionary的区别
1> NSArray是有序的,NSDictionary是无序的;
2> NSArray是通过下标访问元素,NSDictionary是通过key访问元素。
NSArray的用法
1> 创建
@[@"Jack", @"Rose"] (返回是不可变数组)
2> 访问
id d = array[1];
3> 赋值
array[1] = @"jack";