返回

iOS 集合 API 速览

IOS





iOS 集合是存储对象的容器。有四种类型的集合:NSArray、NSMutableArray、NSSet、NSMutableSet、NSOrderedSet、NSMutableOrderedSet。

NSArray是一个存储对象的 不可变有序集合。这意味着你不能向数组中 添加或移除 项,并且数组中的项按顺序存储。

NSMutableArray是一个存储对象的可变有序集合。这意味着您可以向数组中 添加或移除 项,并且数组中的项按顺序存储。

NSSet是一个存储对象的 不可变无序集合。这意味着你不能向集合中 添加或移除 项,并且集合中的项不是按顺序存储的。

NSMutableSet是一个存储对象的可变无序集合。这意味着您可以向集合中 添加或移除 项,并且集合中的项不是按顺序存储的。

NSOrderedSet是一个存储对象的 不可变有序集合。这意味着你不能向集合中 添加或移除 项,并且集合中的项按顺序存储。

NSMutableOrderedSet是一个存储对象的可变有序集合。这意味着您可以向集合中 添加或移除 项,并且集合中的项按顺序存储。

使用集合类的一个好处是,您可以使用 Objective-C 中的快速枚举语法来遍历集合中的每个项。

下表总结了 Objective-C 集合类型的特点。

| 集合类 | 是否可变 | 是否有序 |
|:-|:-:|:-:|
| `NSArray` |||
| `NSMutableArray` |||
| `NSSet` |||
| `NSMutableSet` |||
| `NSOrderedSet` |||
| `NSMutableOrderedSet` |||

### 实际使用示例

#### 数组

```objective-c
NSMutableArray *names = [[NSMutableArray alloc] init];
[names add: @“John Doe”];
[names add: @“Jane Doe”];

集合

NSMutableSet *customers = [[NSMutableSet alloc] init];
[customers add: @“ACME, Inc.”];
[customers add: @“XYZ Widgets, Inc.”];

使用快速枚举语法进行迭代

for (NSObject *name in names) {
  NSLog(@"%@", name);
}

结论

集合类是管理和组织数据的有用方法。它们易于使用且高效,并提供了一组满足您需求的选项。