【发布时间】:2014-04-08 21:03:47
【问题描述】:
我最近实现了核心数据并发和线程限制。我正在消除皱纹。
我有一个主 MOC 和一个私有 MOC,每个 MOC 都以非分层方式链接到 PSC。每次保存时它们都会合并。
我遇到了 MOC 保存失败的问题。应用程序没有崩溃,但对象没有保存并且执行暂停(但可以恢复),并在问题导航器中显示以下内容:
如您所见,这是在私有 MOC 队列中执行的,这是正确的,因为这是执行暂停的行:
如您所见,我在私有 MOC 队列中将保存消息发送到私有 MOC。
关于如何解决此问题的任何想法?因为我没有收到错误消息,所以我真的不知道从哪里开始。谢谢!
更新
我按照 Marcus 的指示替换了我的保存/错误代码。现在是这样的:
[[self privateManagedObjectContext] performBlockAndWait:^{
NSError *error = nil;
if (![[self privateManagedObjectContext] save:&error]) {
NSLog(@"ERROR SAVING MOC IN syncParseObjectLocally: %@\n%@", [error localizedDescription], [error userInfo]);
}
NSLog(@"%@", error);
NSLog(@"%@\n%@", [error localizedDescription], [error userInfo]);
}];
在日志中,这会产生所有null。
我没有使用 iCloud。
当我关闭 all-(objective-c-)exceptions 断点时,执行会无缝继续(所以我可能可以忽略这个问题,但更重要的是,我需要解决这个可能相关的问题:core data changes don't merge)
当我在断点触发时手动输入'po error'时,日志显示:
(lldb) po error
nil
【问题讨论】: