Core Data如何适应MVC模型对象?

chi*_*fet 4 model-view-controller design-patterns core-data

这更像是一个理论问题,但Core Data对象如何适应应用程序的"模型"呢?在最简单的层面上,"模型"可以直接作为核心数据对象,但就其本身而言,它们只是没有任何"可观察"功能的数据容器.可能有一个单独的模型类封装核心数据对象,这似乎是一个更好的解决方案,但我不确定引用是强还是弱.

此外,模型是否应该关注和/或处理自己的持久性?

Mun*_*ndi 8

在Apple使用MVC习语的上下文中,核心数据本身绝对可以用于整个数据层.

托管对象子类可以包含许多功能 - 您称之为模型"逻辑".这是一种非常常见的设计模式.例如,如果您的数据模型使用美元值描述事务数据,则可以使用获取请求模板来提供这些值的总和.您可以通过使用提供计算/格式化等数据的自定义方法扩展托管对象来执行更复杂的操作.

然后,在您的控制器中,您可以读取和更改数据,并从UI获取输入并更新数据的显示.你的控制器不应该做更多的事情.

当然,在极其复杂的应用程序逻辑的情况下,您始终可以创建一个单独的单例DerivativesTradingProfitabilityEngine,可以处理来自Core Data的数据并将其提供给UI控制器.如果您需要在后台线程中进行大量繁重工作,这可能是合适的.

但是,在大多数情况下,标准的Core Data设置就足够了.

  • 有效点.我通常使用单独文件中定义的类别来执行此操作. (3认同)