在核心数据中,如果我们有多值关系,例如当一个企业可以拥有多个关键字时,在子类NSManagedObject生成器中,Apple将使用NSOrderedSet而不是NSArray。
它们几乎相同,只是在NSOrderedSet中检查所有权稍快一些。
为什么Apple没有使用更为熟悉和着名的NSArray?
答案 0 :(得分:61)
我的猜测是:因为NSOrderedSet
管理不同元素的集合,类似于无序关系的NSSet
。
使用NSArray
,您可以创建一个与另一个对象多次相关的对象。
答案 1 :(得分:14)
来自docs:
当元素的顺序很重要时,您可以使用有序集作为数组的替代,并且在测试集合中是否包含对象时的性能是一个考虑因素 - 对数组成员资格的测试比测试成员的成员资格要慢集。