ビジネスが複数のキーワードを持つことができる場合など、複数の値の関係がある場合、コアデータでは、サブクラス NSManagedObject ジェネレーターで、Apple は NSArray の代わりに NSOrderedSet を使用します。
所有権の確認が NSOrderedSet の方がわずかに高速であることを除けば、どちらもほぼ同じです。
Apple が、はるかに馴染みのある有名な NSArray を使用しない理由は何ですか?
ビジネスが複数のキーワードを持つことができる場合など、複数の値の関係がある場合、コアデータでは、サブクラス NSManagedObject ジェネレーターで、Apple は NSArray の代わりに NSOrderedSet を使用します。
所有権の確認が NSOrderedSet の方がわずかに高速であることを除けば、どちらもほぼ同じです。
Apple が、はるかに馴染みのある有名な NSArray を使用しない理由は何ですか?
私の推測では、順序付けられていない関係と同様に、個別のNSOrderedSet
要素のコレクションを管理するためです。NSSet
を使用NSArray
すると、別のオブジェクトに複数回関連するオブジェクトを作成できます。
ドキュメントから:
要素の順序が重要であり、オブジェクトがセットに含まれているかどうかをテストする際のパフォーマンスが考慮される場合は、配列の代わりに順序付きセットを使用できます。配列のメンバーシップのテストは、セットのメンバーシップのテストよりも遅くなります。