字典:
1、字典是一个对象;(NSDictionary类创建)
2、字典以键值对形式存储信息;
3、 字典键值对: key(键) :一般是字符串对象, value(值):可以是任意对象;
4、key必须是唯一;
5、value可以不唯一;
特征:
1.字典一定是成对存在的 键值对
2.字典是无序集合 (不能通过下标来获取值)
3.通过key来获取value (key一般都是字符串对象,value可以是任意对象)
NSDictionary的创建(不可变,一旦创建,内容就不能添加/删除改动):
1 实例化方法:
a)NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"1",@"one",@"2",@"two", nil];
b)NSDictionary *dict2=[[NSDictionary alloc]initWithObjects:@[@"4",@"5",@"6"]forKeys:@[@"four",@"five",@"six”]]
c) NSDictionary *dict3 = [[NSDictionary alloc] initWithDictionary:dict]
d) 通过键值对创建:
NSDictionary *dict4 = @{@"红脸":@"关羽",@"黑脸":@"张飞"};
NSDictionary常用方法:
1 获取键值对个数:
NSInteger count = [dict count] / dict.count
2 通过key获取value值 :
a)NSString *str = [dict valueForKey:@"德玛西亚"]
b)NSString *str2 = dict[@"不祥之刃"]
3 快速枚举遍历数组得到所有的key:
for(NSString *s in dict)
{
NSLog(@"%@",s);
}
4 获取字典中所有的key:
NSArray *arr = [dict allKeys];
for(NSString *s in arr)
{
NSLog(@"%@",s);
}
5 获取字典中所有的value值:
NSArray *valueArr = [dict allValues];
for(NSString *s in valueArr)
{
NSLog(@"%@",s);
}
6 使用block方法遍历:
[dict enumerateKeysAndObjectsUsingBlock:^(id key , id obj ,BOOL *stop){
NSLog(@“%@=%@”,key,obj);
}];
7 把字典保存到文件中:
[dict writeToFile:@"/Users/qianfeng/desktop/dict.plist" atomically:YES]
返回值为BOOL类型
8 从文件中读取字典:
NSDictionary *readDict=[NSDictionary dictionaryWithContentsOfFile:@"/Users/qianfeng/desktop/dict.plist"]
NSMutableDictionary常用方法:
1 增加:
a)增加一组键值对:[dictM setObject:@"1" forKey:@"one"]
注:setObject: forKey 字典中存在key 修改当前key的value值 字符中不存在key 增加一对键值对
b) 增加整个字典:[dictM addEntriesFromDictionary:@{@"two":@"2",@"three":@"3"}]
2 删除:
a)删除一组键值对(通过key值删除):[dictM removeObjectForKey:@"three"]
b)删除多对键值对:[dictM removeObjectsForKeys:@[@"one",@"two"]]
c)删除所有键值对:[dictM removeAllObjects];
3 修改:
a)修改整个字典: [dictM setDictionary:@{@"one":@"1",@"two":@"2",@"three":@"3"}]
b)修改键值对: [dictM setObject:@"4" forKey:@"one"]
dictM[@“one”]=@“4” 简写形式```
```仅供木木学习,以及有需要的伙伴们阅读~可转载,不可复制粘贴哟~```