我们在使用核心数据时应该创建模型类吗?

时间:2012-09-25 07:15:51

标签: objective-c ios design-patterns core-data

我正在开发一个iPad应用程序,如果用户无法访问互联网并稍后与后端数据库同步,则需要我在本地存储数据。

对于本地存储,我计划将核心数据与SQLite一起使用。

我第一次使用Core Data,看起来,它以字典的形式检索实体和商店实体。

我应该创建模型类吗?

这种应用的优秀设计是什么。

我有一个DataEngine类,其职责是根据连接将实体存储在服务器或本地数据库上。

现在我有点困惑如果我需要创建一个Model类并要求单个模型类使用带字典表示的NSMangaedObjectContext来保存自己或者直接保存数据而不是创建模型对象并要求它这样做?

我是否应该为每个实体使用Moel类,并将服务器作为coms /从/到服务器的JSON表示之间的接口。

和我从managedObjectContext获得的表示。

或者我是否应该完全依赖Core Data创建的实体和关系?

1 个答案:

答案 0 :(得分:2)

我会向后做这件事:首先要检查一些事情,然后再提出一些想法。

检查my own question

我会说在您的自定义类别上,您可以在JSON表示和类之间建立接口。

您还应该检查RestKit哪些内容已经可以满足您的需求。


据我所知,你说的是两个不同的问题:

  1. 根据连接性将本地数据同步到服务器;
  2. 使用模型类。
  3. 问题1

    我认为你应该有一个带有公共代码的类,每个模型类都应该有自己的映射(在模型和JSON之间映射)和保存方法。

    另一个类,可能是您的DataEngine类,负责在正确的时间保存正确的对象。 看看RestKit,因为它有助于映射和保存。我不确定同步。

    问题2

    我认为你应该有模特课。它对于处理对象有很大帮助,然后您可以节省查找不同类型数据的方法。

    对于此my question可能对您有用,因为您可以使用生成的类文件创建CoreData模型,并在保留自定义代码的同时随时更新它。