NSDitionary基本用法
字典是无序的,value和key都必须是对象,key值不能重复,如果重复了最后存入的value将不能存入字典
创建字典
//类方法创建字典(空字典)
NSDictionary *dic = [NSDictionary dictionary];
//实例方法初始化
NSDictionary *dic1 = [[NSDictionary alloc]init];
//只有一个键值对的字典
NSDictionary *ddd = [NSDictionary dictionaryWithObject:@"齐天大圣" forKey:@"wukong"];
//两两一对,第一个是对象,第二个是key,通过key寻找对应的对象
NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"张超凡",@"ABC",@"大娃",@"def", nil nil];
//通过key查看字典中的value
NSLog(@"%@",[dic2 objectForKey:@"ABC"]);
NSDictionary *dic3 = [[NSDictionary alloc]initWithObjectsAndKeys:@"value",@"key",@"小黑",@"黑",@"小红",@"红", nil nil];
//快速创建字典@{key:value}
NSDictionary *dddd = @{@"key":@"张三",@"lisi":@"李四"};
//字典的元素个数
NSInteger count = [dddd count];
//取出所有的key值
NSArray *arrayKey = [dic3 allKeys];
//只输出对象
for (int i = 0; i < [dic3 count]; i++) {
NSLog(@"%@",[dic3 objectForKey:[arrayKey objectAtIndex:i]]);
}
NSLog(@"value = %@",dddd[@"key"]);
#pragma mark - 字典遍历
//快速遍历
for (NSString *key in dddd) {
NSLog(@"-------%@:%@",key,[dddd objectForKey:key]);
}
//对象和key都输出
for (int i = 0; i < [dic3 count]; i++) {
NSLog(@"%@:%@",[dic3.allKeys objectAtIndex:i],[dic3 objectForKey:[dic3.allKeys objectAtIndex:i]]);
}
[dddd enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOLBOOL * _Nonnull stop) {
NSLog(@"+++++key = %@:value = %@",key,obj);
}];
//字典写入文件
BOOL isWrite = [dddd writeToFile:@"/Users/game23-3/Desktop/dic.plist" atomically:YES];
if (isWrite) {
NSLog(@"写入成功");
}
//从文件中读取字典
NSDictionary *readDic = [NSDictionary dictionaryWithContentsOfFile:@"/Users/game23-3/Desktop/dic.plist"];
NSLog(@"--------%@",readDic);
#pragma mark - 可变字典
//类方法初始化
NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary];
NSMutableDictionary *muDic = [NSMutableDictionary dictionaryWithCapacity:3];
//添加
[mutableDic setValue:@"adc" forKey:@"快挂了"];
//删除(根据key移除对象)
[mutableDic removeObjectForKey:@"快挂了"];
//删除全部
[mutableDic removeAllObjects];
//修改
[mutableDic setObject:@"ttt" forKey:@"快挂了"];
//查找
if ([mutableDic.allKeys containsObject:@"快挂了"]) {
NSLog(@"存在这个key");
}

浙公网安备 33010602011771号