我正在开发一款游戏,该游戏由放置在游戏区域的一堆卡片组成。每张卡片都是 UIView 的子类。我也在 Core Data 模型对象中跟踪每张卡片的位置,所以我可以在它移动的任何时候保存它的位置。
我试图保持良好的 MVC 分离,但我想知道在控制器中识别哪个模型对象对应于卡片视图的最佳方法是什么。即当卡片视图在游戏区域上移动时,它的平移手势识别器调用控制器中的方法。然后,此方法应更新卡片模型对象中的新位置坐标(并将卡片保存到数据库)。
我可以想出几种方法来提供视图到模型的参考:
- 将卡片模型对象存储在每个卡片视图对象的属性中。(但这会将模型放在视图中,不是吗?)
- 将卡片模型的 URL 标识符存储在卡片视图对象的属性中。(和以前一样,但只是一个参考,重量更轻)
- 在控制器中创建一个字典查找表,将卡片视图映射到卡片模型对象。(太笨重了?)
有没有更好的办法?你会怎么做?