私はプレイエリアに並べられたたくさんのカードからなるゲームに取り組んでいます。各カードは UIView のサブクラスです。Core Data モデル オブジェクト内の各カードの位置も追跡するので、移動するたびにその位置を保存できます。
私は適切な MVC 分離を維持しようとしていますが、どのモデル オブジェクトがカード ビューに対応するかをコントローラーで識別するための最良の方法は何か疑問に思っています。つまり、再生領域でカード ビューを移動すると、そのパン ジェスチャ レコグナイザーがコントローラーのメソッドを呼び出します。次に、このメソッドは、カード モデル オブジェクトの新しい位置座標を更新します (そして、カードをデータベースに保存します)。
ビューからモデルへの参照を提供する方法はいくつか考えられます。
- 各カード ビュー オブジェクトのプロパティにカード モデル オブジェクトを格納します。(しかし、これはモデルをビューに入れますね?)
- カード モデルの URL 識別子をカード ビュー オブジェクトのプロパティに保存します。(前と同じですが参考程度、軽量化)
- カード ビューをカード モデル オブジェクトにマップするディクショナリ ルックアップ テーブルをコントローラに作成します。(ダサすぎる?)
より良い方法はありますか?どのようにしますか?