NSMutableDictionary 可变字典 . NSDictionary 不可变字典
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // 不可变字典 2 // 1.创建 3 NSDictionary *dic = [NSDictionary dictionaryWithObject:@"value"forKey:@"key"]; // 一个键一个值 4 // NSArray *a = 5 // NSArray *b = 6 7 NSDictionary *dic1 = [NSDictionary dictionaryWithObjects:@[@"v1",@"v2",@"v3"] forKeys:@[@"k1",@"k2",@"k3"]]; 8 9 // 直接dic1的内容给dic2 10 NSDictionary *dic2 = [NSDictionary dictionaryWithDictionary:dic1]; 11 12 // NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil]; 13 // 数组的最简写法@[]; 14 // 字典的最简写法 @{key:value} 15 // NSDictionary *dic3 = @{ 16 // key:value, 17 // }; 18 // NSDictionary *dic2= [NSDictionary dictionaryWithObjects:<#(nonnull NSArray *)#> forKeys:<#(nonnull NSArray<id<NSCopying>> *)#>] 19 20 // arry.count 21 // 获取字典的数量 22 int a = [dic1 count]; 23 NSLog(@"%d",a); 24 25 // 通过指定的key获取我们的value(最重要) 26 NSString * str= [dic1 objectForKey:@"k3"]; 27 NSLog(@"%@",str); 28 29 // 取得字典中所有的key跟value 30 [dic1 allKeys]; 31 [dic1 allValues];
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // 可变字典 2 // 1.创建 3 // 直接赋值 4 NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil]; 5 6 // 实例方法/对象方法(开辟一个空间并赋值) 7 NSMutableDictionary *mDic1 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil]; 8 9 // 创建一个空的字典 10 NSMutableDictionary *dic2 = [NSMutableDictionary dictionary]; 11 12 // 向子典中添加新的value,key 13 [mDic setValue:@"dfs" forKey:@"1"]; 14 // [mDic setObject:@"" forKey:<#(nonnull id<NSCopying>)#>]; 15 // NSLog(@"%@",mDic); 16 17 // 可以删除key(只要删除key不用删除value) 18 // [mDic removeObjectForKey:@"k1"]; 19 // NSLog(@"%@",mDic); 20 21 // 删除多个key 22 NSArray *arr = [NSArray arrayWithObjects:@"k1",@"k2", nil]; 23 // [mDic removeObjectsForKeys:arr]; 24 // NSLog(@"%@",mDic); 25 26 // 删除全部 27 // [mDic removeAllObjects]; 28 29 // 遍历 30 for (NSString *key in mDic) { 31 NSString *ob = [mDic objectForKey:key]; 32 NSLog(@"%@",ob); 33 } 34 35 for (int index = 0;index<mDic.count;index++){ 36 NSString *obc = [mDic1 objectForKey:[[mDic1 allKeys]objectAtIndex:index]]; 37 38 }