iOS-OC-基础-NSDictionary常用方法

时间:2023-03-10 07:41:36
iOS-OC-基础-NSDictionary常用方法
     /*=============================NSDictionary(不可变字典)的使用=========================*/

     //————————————————————————————————字典的创建————————————————————————————————

     // 前面的是值(value),后面的是键(key),一一对应
// 方式一:
NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
NSLog(@"dic :%@",dic); // 方式二:
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil]; // 字典的value可以说任何对象类型
NSArray *array = @[@"",@"",@""];
NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:array,@"key" ,nil];
NSLog(@"dic2 :%@",dic2); NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:dic2,@"dicKey", nil];
NSLog(@"dic3 :%@",dic3); // 方式三:跟方式一区分,只能是不可变字典
NSDictionary *dic4 = @{@"key":@"vlaue",@"key1":@"value1"};
NSLog(@"dic4 :%@",dic4); //————————————————————————————————字典的常用方法————————————————————————————— // count 字典元素的个数,键值一起为一个元素
NSUInteger len = [dic4 count];
NSLog(@"len = %ld",len); //objectForKey :根据key取对应的值,如果可以没有不会报错,返回的是null
id obj = [dic3 objectForKey:@"dicKey"];
NSLog(@"obj:%@",obj); //allKeys 获取字典的所有key,返回的是数组
NSArray *allKeys = [dic4 allKeys];
NSLog(@"allKeys :%@",allKeys); //allValues 获取字典的所有Value,返回的是数组
NSArray *allValues = [dic4 allValues];
NSLog(@"allValues: %@",allValues); //allKeysForObject 获取相同value的所有key
NSDictionary *dic5 = @{@"key":@"value",@"key1":@"value"};
NSArray *allKey = [dic5 allKeysForObject:@"value"];
NSLog(@"allKey :%@",allKey); /*=============================NSMutableDictionary(可变字典)的使用=========================*/ //————————————————————————————————可变字典的创建———————————————————————————————— // 两种方式:
NSMutableDictionary *mDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"hhhh",@"key1", nil]; NSMutableDictionary *mDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil]; //NSMutableDictionary *mDic2 = @{@"key":@"value",@"key1":@"value1"}; 错误:不能这样创建可变字典
NSLog(@"mDic1:%@",mDic1); //————————————————————————————————可变字典的常用方法————————————————————————————— //setObject:forKey 给字典添加元素,修改元素
[mDic1 setObject:@"value2" forKey:@"key2"];
NSLog(@"mDic1:%@",mDic1);
// 修改key 对应的元素
[mDic1 setObject:@"kkkkk" forKey:@"key2"]; //removeObjectForKey 移除指定键的元素
[mDic1 removeObjectForKey:@"key"];
NSLog(@"mDic1:%@",mDic1); // removeAllObjects 移除字典所有的元素
[mDic1 removeAllObjects];
NSLog(@"mDic1:%@",mDic1); // removeObjectsForKeys 移除一组键对应的元素
NSArray *keys = [mDic1 allKeys];
[mDic1 removeObjectsForKeys:keys];
NSLog(@"mDic1:%@",mDic1); //setDictionary 将新字典替换旧字典
[mDic1 setDictionary:mDic];
NSLog(@"mDic1 :%@",mDic); /*===========================================字典的遍历===================================*/ NSMutableDictionary *mDic3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"etrtr",@"key1", nil]; // 1、普通遍历
NSArray *allkey = [mDic3 allKeys];
for (int i = ; i < mDic3.count; i++) { NSString *key = [allkey objectAtIndex:i];
NSString *value = [mDic3 objectForKey:key];
NSLog(@"---%@",value);
} // 2、快速遍历 obj 是字典的key
for (id obj in mDic3) { NSString *value = [mDic3 objectForKey:obj];
NSLog(@"==%@",value);
} // 3、block 遍历
[mDic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@">>%@",key);
NSLog(@">>%@",obj);
}];

本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSDictionary