CoreData - 多个持久性存储

时间:2015-11-02 17:06:56

标签: ios core-data magicalrecord

我需要一些帮助来理解CoreData。

我们说我安装了MagicalRecords和RestKit,而且我还有一台服务器,可以给我一些posts。然后我需要将其中一些posts保存到设备内存中,以便用户稍后可以阅读该帖子(即使没有互联网连接)。为了不浪费内存,很明显我应该使用内存存储,我这样做。但是为了保存帖子我定义了SQLite或其他东西,这让我真的很无奈。

问题是,Apple没有提供有关如何处理这种情况的大量信息,谷歌搜索到目前为止没有帮助。我猜我必须制作两个持久存储和两个配置:默认存储和"保存"那些。我已经找到了制作两个持久商店的方法,但现在我只是不明白如何使用它:如何在我想要的完全商店中创建和保存商品,如何转移它们在商店之间,这将如何与RK和MR互动?
任何帮助都会被贬低。链接,信息,代码片段

1 个答案:

答案 0 :(得分:9)

一般来说,

如果在不同的持久存储中使用不同的实体,

使用不同的命名配置设置数据模型。每个配置定义包含一个或多个实体的模型的子集。您可以在模型编辑器中执行此操作。通过调用addPersistentStoreWithType:configuration:URL:options:error:添加持久性存储时,请为第二个参数提供配置名称。每次插入新实例时,它都将根据配置转到正确的持久存储。

如果在多个持久性存储中使用相同的实体,

不要打扰配置。相反,在插入新实例后,使用NSManagedObjectContext的方法assignObject:toPersistentStore:告诉它使用哪个持久性存储文件。

在商店之间移动实例时,

这完全取决于你。没有直接的框架支持。您无法使用assignObject:toPersistentStore:将实例重新分配给其他商店文件。您必须在另一个商店中创建一个新实例,并自己复制所有属性值和关系。

我不知道MagicalRecord或RestKit是如何支持的,或者他们是否支持。