1

私の質問は、これを正しく、適切な設計で実装する方法です。

これにはCore Dataを使用します。

問題の説明: システムに Location と Event という 2 つのオブジェクト タイプ (クラス) があるとします。これらは Web サービスから取得され、永続化する必要はありません。

これら 2 種類のオブジェクトはいずれもお気に入りに追加 (保存) でき、ローカルに永続化する必要があります。

追加要件:

  • お気に入りの表示と管理 - FavoritesViewController で言ってみましょう (ここではNSFetchedResultControllerを使用します)
  • お気に入りの表示 (セル) は、お気に入りの種類 (場所またはイベント) によって異なります。
  • 場所/イベントの詳細ビュー コントローラーでは、お気に入りに追加/お気に入りから削除するアクションがあり、そのアクションの状態はお気に入りの存在に応じて設定する必要があります
  • 将来的には、お気に入りに追加できる別のオブジェクト タイプにすることができます (たとえば、ドリンク)。

これを実装する最善の方法についてジレンマがあります。場所とイベントを個別のエンティティ (モデル オブジェクト) として直接保存し、お気に入りのリストを取得して管理するために、1 回のフェッチで取得する必要があります。または、インターフェース/プロトコル (Favorable など) を使用して、Favorite オブジェクトを作成および保存し、Favorite に追加できる各オブジェクトは、Favorite を実装する必要があり、Favorite オブジェクトに変換されますが、この場合、Favorite が制限されます。 Favorite オブジェクトが公開する属性のみ。

4

1 に答える 1

1

2 つのエンティティを使用して単純な Core Data モデルを作成する必要があります。それは非常に簡単です。テーブル ビューには、必要に応じてデータを表示する 2 種類のセル (異なる識別子を持つ) があります。

アプリ全体でこれらをエンティティ (NSManagedObject のサブクラス) に使用できます。とにかくそれらを永続化する必要があります (したがって、インターネットがダウンした場合でもそれらを使用でき、ユーザーはそれらを使用して作業を続けることができます)。お気に入りのインスタンスは、BOOL プロパティでマークできます。

ただし、設計上の考慮事項の 1 つとして、Location と Event の間にオプションの関係を作成する必要がある場合があります。一部のイベントは特定の場所に関連付けられている可能性があり、この情報も必要になります。Core Data を使用すると、これは非常に簡単に実行できます。

于 2013-06-20T10:09:51.190 に答える