1

Itemサーバーと通信して現在のユーザーのアイテム(クラス)を取得して保存するアプリがあります。ここまでは順調ですね。

基本的にアイテムオブジェクトのセットを返す検索を実装したいのですが、明らかに、これまでのすべての検索結果を保持したくありません。もう 1 つのユース ケースは、サーバー API に、recommendations/new/comings/ などの異なるエンドポイントがあり、同じ Item オブジェクトを返すが異なるコンテキストであるということです。

私が最初に考えたのは、使い捨ての管理されたコンテキストを使用し、そこに API からオブジェクトをロードし、フェッチを行い、ユーザーが完了したらコンテキストを破棄することでした。一般的には良い考えですか?私のVCのほとんどはすでにコアデータと通信しているため、コードを節約できます。

4

1 に答える 1

1

Core Data の素晴らしいインフラストラクチャ全体を捨てるのではなく、それを活用して目的を達成する必要があります。

  • タイムスタンプ属性をエンティティに追加し、それを使用して検索結果を選択的に表示したり、古いアイテムからストアをパージしたりすることさえできます。

  • エンティティにカテゴリ属性を追加し、検索時にカテゴリでフィルター処理します。

どちらも、NSPredicateに追加する で実現できますNSFetchRequest。例えば:

fetchRequest.predicate = [NSPredicate predicateWithFormat:
   @"timestamp > %@", [[NSDate date] dateByAddingTimeInterval:numberOfSeconds]];

また

fetchRequest.predicate = [NSPredicate predicateWithFormat:
  @"category = %@", @"new"]; 
于 2012-09-28T18:46:14.653 に答える