RestKit 内存核心数据存储的配置

Posted

技术标签:

【中文标题】RestKit 内存核心数据存储的配置【英文标题】:Configuration for RestKit in-memory Core Data store 【发布时间】:2014-09-09 14:33:18 【问题描述】:

我需要将我的 Core Data 持久存储(由 RestKit 管理)拆分为两部分。一部分应该只保留在内存中而不是保存到磁盘,另一部分应该保存。通常它是通过向 Core Data 对象模型添加配置并为每个配置创建两个存储来完成的。但是RestKit的RKManagedObjectStore方法——(NSPersistentStore )addInMemoryPersistentStore:(NSError *)error;不采用配置名称并使用配置 nil 添加持久存储:

- (NSPersistentStore *)addInMemoryPersistentStore:(NSError **)error

    if (! self.persistentStoreCoordinator) [self createPersistentStoreCoordinator];

    return [self.persistentStoreCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:error];

根据 Core Data 文档,这可以防止在持久存储协调器中使用任何配置。 我可以重新加载此方法并使其使用配置,但首先我想问: 我有什么理由不这样做吗? addInMemoryPersistentStore 看起来像这样肯定是有原因的。可能有人尝试过与我将要做的相同的事情,但发现它不起作用?

【问题讨论】:

【参考方案1】:

我会说您应该创建自己的方法版本,该版本采用配置参数。我不认为你缺少任何东西,我只是认为如果 RestKit 要提供对 100% 开箱即用的核心数据配置 API 的支持,那么将会有很多代码需要维护,而很少有人会从所有额外的努力中受益。

您最好的选择是子类化并添加您想要的方法,酌情调用super,然后实例化该子类并在您配置核心数据堆栈(托管对象存储)时传递它。

【讨论】:

以上是关于RestKit 内存核心数据存储的配置的主要内容,如果未能解决你的问题,请参考以下文章

由于 NSUnknownKeyException,无法从 RestKit 存储核心数据

如何使用 RestKit 将嵌套的 JSON 对象存储到核心数据中

RestKit:如何删除核心数据条目以保持内容与服务器同步?

使用核心数据在 RestKit 中进行远程服务器搜索

使用 RestKit 0.20 备份核心数据

Restkit 从核心数据中删除项目