核心数据并发症

时间:2011-04-07 20:04:42

标签: objective-c sqlite core-data

我正在重构和旧的应用程序,并正在考虑切换到核心数据。 与直接使用sqlite或包装器相比,我已经在这里和网上阅读了以前的主题和利弊。 使用sqlite包装器似乎更直接,因为在我看来,偏离标准使用要么很困难,要么找不到有效的方法。 例如,拥有不在DB中保存的对象。想象一下你可以下载产品列表的商店,如果有人想要产品,他应该在本地保存。 我读了两个方法,一个有单独的托管上下文,并删除一个临时对象,并阅读有关复制模型 但是他们在我看来更像是直接使用sqlite时自然而然的东西。在更复杂的查询中我也觉得有限(可能是因为我对核心数据缺乏经验)。 我知道我不是非常具体,但我正在寻找建议,当我已经有一个sqlite实现时,我是否可以真正从远程迁移到核心数据中受益。简单地说临时对象问题阻止我切换,但可能是我的缺乏知识。

1 个答案:

答案 0 :(得分:2)

使用核心数据的没有任何问题,如果您觉得它不适合您的应用程序,或者您对它不熟悉,或者您对别的。因此,如果直接使用SQLite对你很有意义,那就去吧。

也就是说,如果您将Core Data视为SQLite的替代品,那么您将遇到麻烦。当你使用SQLite时,你处理表和行;当您使用Core Data时,您将处理对象和关系。 Core Data框架将这些对象和关系映射到SQLite的表(或其他一些持久存储)上,因此,如果您将对象转换回脑中的表,那么您就会忽略这一点。