我需要将我的 Core Data 持久存储(由 RestKit 管理)拆分为两部分。一部分应该只保留在内存中而不是保存到磁盘,另一部分应该保存。通常它是通过向 Core Data 对象模型添加配置并为每个配置创建两个存储来完成的。但是RestKit的RKManagedObjectStore方法——(NSPersistentStore )addInMemoryPersistentStoreNSError *)error;不采用配置名称并使用配置 nil 添加持久存储:
- (NSPersistentStore *)addInMemoryPersistentStoreNSError **)error
{
if (! self.persistentStoreCoordinator) [self createPersistentStoreCoordinator];
return [self.persistentStoreCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:error];
}
根据 Core Data 文档,这可以防止在持久存储协调器中使用任何配置。
我可以重新加载此方法并使其使用配置,但首先我想问:
我有什么理由不这样做吗? addInMemoryPersistentStore 看起来像这样肯定是有原因的。可能有人尝试过与我将要做的相同的事情,但发现它不起作用?
Best Answer-推荐答案 strong>
我想说您应该创建自己的方法版本,该版本采用配置参数。我不认为您缺少任何东西,我只是认为如果 RestKit 要提供对 100% 开箱即用的核心数据配置 API 的支持,那么将会有很多代码需要维护,而很少有人会从所有额外的努力中受益。
您最好的选择是子类化并添加您想要的方法,根据需要调用 super ,然后实例化该子类并在配置核心数据堆栈(托管对象存储)时传递它。
关于ios - RestKit 内存核心数据存储的配置,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25747324/
|