Objective-C 集合模式与委托模式全解析
1. 集合模式
1.1 快速枚举支持
为自定义对象提供快速枚举支持,需要遵循 NSFastEnumeration 协议,并实现 -countByEnumeratingWithState:objects:count: 方法。快速枚举代码会重复向对象发送该消息,直到返回 0。每次集合收到消息时,需将下一批要处理的对象组装到 C 数组中,并返回准备好的对象数量。若类能批量组装对象,快速枚举效率最高;简单非优化实现可每次返回一个对象。枚举进度通过 NSFastEnumerationState 结构体维护,该结构体首次传入方法时为空,后续每次消息都会传入相同结构体。集合必须更新该结构体以跟踪枚举进度,并防止在枚举过程中集合发生变化。若在枚举过程中修改集合,快速枚举会抛出异常。
1.2 集合排序
有序集合提供三种基本排序技术:
| 方法 | 描述 |
| — | — |
| - [NSArray sortedArrayUsingDescriptors:] | 使用排序描述符返回数组的排序副本 |
| - [NSArray sortedArrayUsingSelector:] | 使用 Objective - C 消息返回数组的排序副本 |
| - [NSArray sortedArrayUsingFunction:context:] | 使用 C 函数比较对象,返回数组的排序副本 |
超级会员免费看
订阅专栏 解锁全文
14

被折叠的 条评论
为什么被折叠?



