1

从官方 RestKit 页面Restkit Github我发现以下重置商店:

- (void) resetSavedDatabase:(id)sender {
    RKManagedObjectStore *objectStore = [[RKObjectManager sharedManager] objectStore];
    [objectStore resetPersistentStores];
    [objectStore save:nil];    

}

这样可行。但是,如果我在此方法之后执行以下操作,则会出现错误:

TestEntity *testEntity = [TestEntity createEntity];

testEntity.name = @"TestEntity";    

NSError *error;

[[RKObjectManager sharedManager].objectStore save:&error];

错误:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法从此 NSManagedObjectContext 的协调器访问对象的持久存储”

一切都在后台调用。这个想法是,我想预加载一些 sqlite 数据,然后将它们与我的同步逻辑同步。(当我不删除持久存储时,逻辑有效)

有人能帮我吗?

4

1 回答 1

1

是的,它会自动重新创建存储,但在接下来的步骤中,它也会重新创建对象上下文。

所以你几乎肯定想在主线程上执行此操作。否则,RestKit 会将创建的持久存储与后台线程中的对象上下文相关联,并且在线程结束时会消失。

我完全不明白你为什么要这样做。

于 2012-10-26T12:44:25.903 回答