NSDictionary
初始化新字典,新字典包含otherDic
NSDictionary *dic = [NSDictionary dictionaryWithDictionary:otherDic];
以文件内容初始化字典
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];
NSArray *objects=[NSArray arrayWithObjects:@"v1",@"v2",@"v3", nil];
NSArray *keys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];
dic=[NSDictionary dictionaryWithObjects:objects forKeys:keys];
//类方法
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"沐风", @"name", @"呵呵", @"sex", @"金紫荆韩式松骨", @"address", @"呵呵", @"exo", nil];
//对象方法
// NSDictionary *dictionary = [[NSDictionary alloc]initWithObjectsAndKeys:@"沐风", @"name", @"呵呵", @"sex", @"金紫荆韩式松骨", @"address", nil];
//现在常用以下方法
// NSDictionary *dictionary = @{@"name":@"沐风", @"sex":@"呵呵", @"address":@"金紫荆韩式松骨",@"exo":@"呵呵"};
//创建空字典
// NSDictionary *dictionaty = [NSDictionary dictionary];
//得到词典的数量
NSInteger count = [dictionary count];
NSLog(@"词典的数量为: %ld",count);
//根据key查value
NSLog(@"%@", [dictionary objectForKey:@"name"]);
NSLog(@"%@", dictionary [@"name"]);
//根据value查询key
NSLog(@"%@", [dictionary allKeysForObject:@"呵呵"]);
//得到词典中所有KEY值
NSEnumerator * enumeratorKey = [dictionary keyEnumerator];
//快速枚举遍历所有KEY的值
for (NSObject *object in enumeratorKey) {
NSLog(@"遍历KEY的值: %@",object);
}
//得到词典中所有Key值
NSLog(@"%@", dictionary.allKeys);//allkeys 属性
//得到词典中所有Value值
NSEnumerator * enumeratorValue = [dictionary objectEnumerator];
//快速枚举遍历所有Value的值
for (NSObject *object in enumeratorValue) {
NSLog(@"遍历Value的值: %@",object);
}
//得到词典中所有Value值
NSLog(@"%@", dictionary.allValues);
//遍历词典中所有Value值
for (NSString *key in dictionary.allKeys ) {
NSLog(@"%@", [dictionary objectForKey:key]);
}
-
Block遍历
[dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
NSLog(@"key = %@, value = %@", key, obj);
}];
- 键值对集合的特点
- 字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复)
- 键值对中存储的数据是"无序的".
- 键值对集合可以根据键, 快速获取数据.
NSDictionary文件操作
-
将字典写入文件中
- - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
- - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
- 存结果是xml文件格式,但苹果官方推荐为plist后缀。
-
示例
NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};
BOOL flag = [dict writeToFile:@"/Users/LNJ/Desktop/dict.plist" atomically:YES];
NSLog(@"flag = %i", flag);
- 从文件中读取字典
NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/LNJ/Desktop/dict.plist"];
NSLog(@"newDict = %@", newDict);
NSMutableDictionary
初始化一个空的可变字典
NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithObject:@"v3" forKey:@"key3"];
向字典2对象中添加整个字典对象3
[dic2 addEntriesFromDictionary:dic3];
向字典2对象中最佳一个新的key3和value3
[dic2 setValue:@"value3" forKey:@"key3"];
初始化一个空的可变字典
NSMutableDictionary *dic1 = [NSMutableDictionary dictionary];
将空字典1对象内容设置与字典2对象相同
[dic1 setDictionary:dic2];
将字典中key1对应的值删除
[dic1 removeObjectForKey@"key1"];
NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
根据指定的数组(key)移除字典1的内容
[dic2 removeObjectsForKeys:array];
移除字典所有对象
[dic1 removeAllObjects];