2009-05-13 15 views
0

私はiPhone用のCore Dataアプリケーションを作っていますが、その問題がNDAの問題なしでその状況でMac OS Xに十分に当てはまると願っています。コアデータを使った最近の検索

ユーザーが検索を実行すると、エンティティのエントリを使用して各結果をコンテキストに保存しています。これらの結果は、最近の検索セクションで後で取り出せます。これについては何が最善の方法ですか?

私が検討している方法の1つは、これにリンクするEntry属性を持つHistoryという別のエンティティを追加することです。最初の検索結果はEntry.history_id = 1、2番目の結果はEntry.history_id = 2などとなります。最近の検索では、特定の履歴IDを持つエントリエンティティが選択されます。

答えて

0

あなたが望むものが順序付けられた検索リストであれば、あなたは正しいです:順序を指定するいくつかのプロパティを手動で管理する必要があります。あなたが与えるhistory_idは1つの可能性です。おそらく、エンティティインスタンスの挿入時に設定される日付属性を使用します。この日付プロパティでフェッチを注文することができます。実際の検索を格納するために、私はしばしばクエリのNSPredicateインスタンスをデータプロパティ(自分自身で直列化/直列化を処理する)または変換可能な(デフォルトのNSUnarchiveFromData転送を使用して)プロパティに直列化しました。

+0

Historyエンティティの利点の1つは、検索結果のセットにラベルを付けるためのタイトルを格納できます(元の要件ではありませんでした)。私は後で検索するためにNSPredicateをソートしてアーカイブするというデータのアイデアが好きです。 – baalexander

+0

はい、これはすべて履歴エンティティ内にあります:名前(文字列)、日付(日付)、述語(変換可能)属性。 –