我需要将我的Core Data持久存储(由RestKit管理)分成两部分。一部分应仅在内存中保留,不能保存到磁盘,另一部分应保存。通常通过向Core Data对象模型添加配置并为每个配置创建两个存储来完成。但是RestKit的RKManagedObjectStore方法 - (NSPersistentStore )addInMemoryPersistentStore:(NSError * )错误;不接受配置名称并添加配置为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看起来像它的样子。也许有人曾试图做同样的事情,我发现它不起作用?
答案 0 :(得分:2)
我想说你应该创建自己的方法版本,它带有一个配置参数。我不认为你错过任何东西,我只是认为如果RestKit提供开箱即用的100%Core Data配置API的支持那么就会有很多代码要维护,很少有人愿意从所有额外的努力中受益。
您最好的选择是子类化并添加您想要的方法,根据需要调用super
,然后实例化该子类并在配置Core Data堆栈(托管对象库)时传递它。