2

「songs」というクラスに NSArray タイプのプロパティがあります。そのためのカスタムゲッターを作成しています.XCodeはメソッドを作成するオプションを提供します:

songsAtIndexes:(NSIndexSet *)indexes

これは何ですか? XCode がこれを提供する理由は何ですか? これは NSArray プロパティに固有のものですか? このメソッドのメソッド/ゲッターを作成する目的は何ですか? 手動で定義しない場合、自動的に作成/合成されますか?

4

1 に答える 1

5

これは、クラスで使用できるインデックス付きコレクションのほとんど使用されていない KVC 最適化の結果です。これについてはこちらで読むことができますが、抜粋すると:

インデックス付き対多関係のコンプライアンス

インデックス付き対多リレーションシップの場合、KVC コンプライアンスでは、クラスが次のことを行う必要があります。

  • -<key>配列を返すという名前のメソッドを実装します。
  • <key>または、またはという名前の配列インスタンス変数を用意します_<key>
  • または、メソッド-countOf<Key>と -objectInAtIndex: または のいずれかまたは両方を実装し-<key>AtIndexes:ます。
  • オプションで、-get<Key>:range:パフォーマンスを向上させるために実装することもできます。

実際には KVC (および場合NSPredicateによっては s) を使用する Core Data でのみ使用されますが、必要に応じてこれらの方法を利用できます。

99% の場合、これを実装する必要はありませんが、必要に応じて実装できます。

于 2013-03-21T22:04:40.610 に答える