【问题标题】:CoreData - multiple persistent stores [closed]CoreData - 多个持久存储[关闭]
【发布时间】:2016-02-02 15:46:08
【问题描述】:

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

假设我安装了 MagicalRecords 和 RestKit,并且我还有一台服务器,它可以返回一些 posts。然后我需要将其中一些posts 保存到设备内存中,以便用户稍后可以阅读该帖子(即使没有互联网连接)。为了不破坏内存,很明显我应该使用内存存储,我就是这么做的。但是为了保存帖子,我肯定想要 SQLite 什么的,这让我真的很无奈。

问题是,苹果没有提供太多关于如何处理这种情况的信息,而且谷歌搜索到目前为止也没有帮助。我猜我必须创建两个持久存储和两个配置:默认和“保存”的。我找到了一种创建两个持久存储的方法,但现在我只是不明白如何使用它:如何在我想要的 exact 存储中创建和保存实体,如何转移它们商店之间,这将如何与 RK 和 MR 交互?
任何帮助都会得到帮助。链接、信息、代码sn-ps

【问题讨论】:

  • To not rubbish the memory, it's obvious that I should use in-memory storage - 这是什么意思?您应该在内存中拥有尽可能少的信息量......
  • @Wain 我的意思是不要破坏设备的 ROM(或者是闪存?),所以我需要使用内存中持久存储使用的 RAM。

标签: ios core-data magicalrecord


【解决方案1】:

一般来说,

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

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

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

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

在商店之间移动实例时,

这一切都取决于你。没有直接的框架支持。您不能使用assignObject:toPersistentStore: 将实例重新分配给不同的存储文件。您必须在不同的存储中创建一个新实例并自己复制所有属性值和关系。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-17
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多