というビューがありますCart
。s の表を表示しますItem
。これらItem
は永続化する必要があるため、Item
NSManagedObject をサブクラス化します。id
、 などの値は、アクセサーが自動的に生成されるprice
プロパティです。@dynamic
という別のビューがありFavorites
ます。のテーブルが表示されますが、Item
永続化する必要はありません。実際、このビューは、ユーザーが異なる資格情報でログインするたびに変化します。
2 つのビューの関係は、ユーザーが自分のお気に入りから自分のカートにアイテムを追加できることです。Item
カートには、さまざまなリストのを格納できFavorites
ます。Favorites
アイテムがカートに追加されても、リストは変更されません。
最初に、Favorites
ビューのモデルを NSDictionary オブジェクトの NSArray にしました。ユーザーがアイテムをカートに追加すると、NSDictionary のキーと値のペアから Core Data にアイテムを作成して保存します。このアプローチは、あまりクリーンでもドライでもないように見えます。Favorites
ビューのモデルを s の NSArray にする方が理にかなっているのではないでしょうItem
か?
したがって、私の意図はItem
、Core Data モデル (NSManagedObject) を表すだけでなく、ビューでも動作するようにクラスを実装するFavorites
ことです。Objective-C と iOS の開発は初めてなので、これがどのように機能するか、どのように見えるかは本当にわかりません。私のために魔法のように作成されたアクセサーをオーバーライドする必要があるようですが、呼び出しを使用してコンパイル時にそれらを呼び出すことはできませんsuper
...誰でもNSDictionaryデータを返すことを知っているときの大まかな概要を教えてもらえますか?またはコアデータデータ?Core Data データの場合、魔法のように生成されたアクセサーと同じレベルの効率を維持するにはどうすればよいでしょうか?
さらに良いことに、DRY と同じか、より理にかなったより良い実装はありますか? それとも、あまりにも多くの機能を 1 つのクラスにまとめようとしていますか? この場合、NSDictionary オブジェクトの NSArray が最善の方法ですか?