Core data RestKit/CoreData未将关系立即保存到永久存储
RestKit或CoreData是否有一些奇怪的上下文保存机制?我的意思是,我下载我的托管对象,如果我快速关闭应用程序并再次运行它,我会看到一些关系对象没有保存到持久存储。然而,当我在关闭应用程序之前等待10-15秒时,这些对象会被保存,我可以在再次运行应用程序时获取它们 那么它是如何工作的呢?在类似事务的操作中不保存对象(整个对象及其关系或什么都不保存)是正常的吗 也许我只是幸运地拥有了这15秒,而且在某些情况下,由于CoreData/RestKit/my代码中的某些错误,这些关系对象可能根本不会被保存 我使用以下方式下载对象:Core data RestKit/CoreData未将关系立即保存到永久存储,core-data,restkit,Core Data,Restkit,RestKit或CoreData是否有一些奇怪的上下文保存机制?我的意思是,我下载我的托管对象,如果我快速关闭应用程序并再次运行它,我会看到一些关系对象没有保存到持久存储。然而,当我在关闭应用程序之前等待10-15秒时,这些对象会被保存,我可以在再次运行应用程序时获取它们 那么它是如何工作的呢?在类似事务的操作中不保存对象(整个对象及其关系或什么都不保存)是正常的吗 也许我只是幸运地拥有了这15秒,而且在某些情况下,由于CoreData/RestKit/my代码中的某些错误,这些关系对象可能根本
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager getObjectsAtPath:@"/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"OK");
[self saveContext];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"ERROR");
}];
并通过以下方式保存上下文:
[[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext save:&err];
有什么帮助吗?RestKit会在调用成功块之前为您保存上下文-您不需要显式保存 通过“杀死应用程序”,我猜你是在用Xcode停止它?这是一个完全的终止,任何还没有完全完成的事情都不会有机会终止。这是不现实的测试,你不应该太依赖它
如果您想确切地知道保存操作何时完成,请观察所发布的相应通知。是否可以在主队列中显式执行保存操作?只是为了确定..保存时我正在检查[[NSThread currentThread]isMainThread],它总是等于YES。奇怪的是,主对象(顺序)已保存,但其子对象(项)未保存。