可变

在 Objective-C(OC)中,可变字典(NSMutableDictionary) 是一个能够存储键值对并允许动态添加、删除、修改键值对的集合。它是 NSDictionary 的可变版本。与不可变字典不同,NSMutableDictionary 允许你在创建字典之后修改其内容。

创建可变字典

1. 空的可变字典

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

2. 初始化带有初始值的可变字典

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                              @"value1", @"key1",
                              @"value2", @"key2", nil];

常用操作

1. 添加键值对

可以通过 setObject:forKey: 方法向字典中添加键值对。如果键已经存在,会更新对应的值。

[dict setObject:@"newValue" forKey:@"newKey"];

例如:

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"Objective-C" forKey:@"language"];
NSLog(@"%@", dict);  // 输出:{ language = "Objective-C"; }

2. 删除键值对

使用 removeObjectForKey: 可以删除字典中的某个键值对:

也可以删除所有的键值对:

3. 修改值

如果字典中已经存在某个键,可以直接通过 setObject:forKey: 来更新对应的值。例如:

4. 获取值

你可以使用 objectForKey: 来获取某个键对应的值:

从 iOS 6 开始,你也可以使用下标语法来获取或设置值:

5. 获取所有键或值

你可以获取所有的键或值:

示例

以下是一个综合示例,演示如何创建、修改和操作可变字典:

注意事项

  1. 键的唯一性:在字典中,键必须是唯一的。如果使用相同的键多次添加,会覆盖原有的值。

  2. 键的类型:字典的键必须是对象类型(如 NSStringNSNumber 等),不能是基本类型(如 intfloat 等)。

Last updated