23

ビジネスが複数のキーワードを持つことができる場合など、複数の値の関係がある場合、コアデータでは、サブクラス NSManagedObject ジェネレーターで、Apple は NSArray の代わりに NSOrderedSet を使用します。

所有権の確認が NSOrderedSet の方がわずかに高速であることを除けば、どちらもほぼ同じです。

Apple が、はるかに馴染みのある有名な NSArray を使用しない理由は何ですか?

4

2 に答える 2

61

私の推測では、順序付けられていない関係と同様に、個別のNSOrderedSet要素のコレクションを管理するためです。NSSet

を使用NSArrayすると、別のオブジェクトに複数回関連するオブジェクトを作成できます。

于 2012-10-23T13:46:35.720 に答える
14

ドキュメントから:

要素の順序が重要であり、オブジェクトがセットに含まれているかどうかをテストする際のパフォーマンスが考慮される場合は、配列の代わりに順序付きセットを使用できます。配列のメンバーシップのテストは、セットのメンバーシップのテストよりも遅くなります。

于 2012-10-23T13:51:39.887 に答える