0

コア データの使用。Team と Player のモデルがあるとします。

仮定: -各プレイヤーは 1 つのチームのメンバーです -関連する関係は xcdatamodel ファイルで作成されています。

私は TeamListViewController (すべてのチームを一覧表示) を持っています。チームを選択すると、その選択したチームに関連するプレーヤーだけのリストを PlayerListViewController で表示したいと考えています。

次に、個々のプレーヤーを選択して PlayerViewController を表示し、個人情報を確認したり、詳細を編集したりできるようにしたいと考えています。

fetchResultsController を使用してすべてのプレイヤーのリストを取得する方法を知っています。

  1. 選択したチームの選手だけを表示するために必要なデータを取得するにはどうすればよいですか?

  2. また、表示できるようにデータを配列にプルするだけの場合、レコードに他の変更が加えられたときに、配列がコア データと同期していることを確認するにはどうすればよいですか?

4

1 に答える 1

2

特定の基準に一致するオブジェクトをフェッチするために必要なのは、NSPredicate です。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team=Tigers"];
[fetchRequest setPredicate:predicate];

これで、フェッチ リクエストは team 属性 = "Tigers" の結果を返します。述語がないと、すべてのオブジェクトが返されます。

述語は複雑になる可能性があります。複数の条件を持つことができ、「ANY」や「LIKE」などの特別な演算子が定義されます。述語プログラミング ガイドを参照してください。

2 番目の質問について - 複数のスレッドで Core Data ストアにアクセスする予定はありますか? 読み始めてください...スレッドごとにマネージド オブジェクト コンテキストが必要です。そうでない場合は、基本的に心配する必要はありません。基礎となるストアへの変更は、あたかも明示的にフェッチしていないオブジェクトへの関係をたどるかのように、「失敗」します。

于 2010-08-16T03:21:34.007 に答える