// // main.m // NSMutableDictionary // NSDictionary不可变,初始化后就不可以修改,NSMutableDictionary可变,初始化后可以改变。 // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 1.创建一个空的字典 NSMutableDictionary *dictM = [NSMutableDictionary dictionary]; NSLog(@"%@", dictM);// {} // 2.如何添加 [dictM setObject:@"lnj" forKey:@"name"]; NSLog(@"%@", dictM);// {name = lnj;} // 会将传入字典中所有的键值对取出来添加到dictM中 [dictM setValuesForKeysWithDictionary:@{@"age":@"30", @"height":@"1.75"}]; NSLog(@"%@", dictM);// {age = 30;height = "1.75";name = lnj;} // 3.如何获取 NSLog(@"name = %@", dictM[@"name"]);//lnj // 4.如何删除 [dictM removeObjectForKey:@"name"]; NSLog(@"%@", dictM);//{age = 30;height = "1.75";} [dictM removeObjectsForKeys:@[@"age", @"height"]]; NSLog(@"%@", dictM);//{} // 5.如何修改 // 如果利用setObject方法给同名的key赋值, 那么新值会覆盖旧值 [dictM setObject:@"88" forKey:@"age"]; dictM[@"age1"] = @"881"; NSLog(@"%@", dictM);//{age = 88;age1 = 881;} // 1.不能使用@{}来创建一个可变的字典 NSMutableDictionary *dictM = @{@"name":@"lnj"}; //报错 [dictM setObject:@"30" forKey:@"age"]; // 2.如果是不可变数组, 那么key不能相同 // 如果是不可变字典出现了同名的key, 那么后面的key对应的值丢弃。 // 如果是在可变字典中, 后面的会覆盖前面的 NSDictionary *dict = @{@"name":@"lmj", @"name":@"lnj"}; NSLog(@"dict = %@", dict);//{name = lmj;} NSMutableDictionary *dictM1 = [NSMutableDictionary dictionaryWithObjects:@[@"lmj", @"lnj"] forKeys:@[@"name", @"name"]];//{name = lnj;} NSLog(@"dict = %@", dictM1); return 0; }
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7441052.html,如需转载请自行联系原作者