在核心数据中,如果我们有多值关系,比如当一个业务可以有多个关键字时,在子类 NSManagedObject 生成器中,Apple 会使用 NSOrderedSet 而不是 NSArray。
它们几乎相等,只是在 NSOrderedSet 中检查所有权稍快一些。
为什么 Apple 不使用更为熟悉和著名的 NSArray 的任何原因?
在核心数据中,如果我们有多值关系,比如当一个业务可以有多个关键字时,在子类 NSManagedObject 生成器中,Apple 会使用 NSOrderedSet 而不是 NSArray。
它们几乎相等,只是在 NSOrderedSet 中检查所有权稍快一些。
为什么 Apple 不使用更为熟悉和著名的 NSArray 的任何原因?
我的猜测是:因为NSOrderedSet
管理不同元素的集合,类似于NSSet
无序关系。
您可以创建一个与NSArray
另一个对象多次相关的对象。
从文档:
当元素的顺序很重要并且测试对象是否包含在集合中的性能是一个考虑因素时,您可以使用有序集合作为数组的替代方案——测试数组的成员资格比测试集合的成员资格慢。