Ios 核心数据MOC save暂停执行并未能保存(无错误或崩溃)

Ios 核心数据MOC save暂停执行并未能保存(无错误或崩溃),ios,core-data,Ios,Core Data,我最近实现了核心数据并发和线程限制。我正在整理皱纹 我有一个主主主运行中心和一个私有运行中心,每个主运行中心都与PSC非层级链接。只要保存一个,它们就会合并 我遇到MOC保存失败的问题。应用程序不会崩溃,但对象不会保存,执行暂停(但可以恢复),问题导航器中显示以下内容: 如您所见,这是在私有MOC队列中执行的,这是正确的,因为这是执行暂停的行: 如您所见,我在私有MOC队列中向私有MOC发送保存消息 关于如何解决这个问题有什么想法吗?因为我没有收到错误消息,我真的不知道从哪里开始。谢谢

我最近实现了核心数据并发和线程限制。我正在整理皱纹

我有一个主主主运行中心和一个私有运行中心,每个主运行中心都与PSC非层级链接。只要保存一个,它们就会合并

我遇到MOC保存失败的问题。应用程序不会崩溃,但对象不会保存,执行暂停(但可以恢复),问题导航器中显示以下内容:


如您所见,这是在私有MOC队列中执行的,这是正确的,因为这是执行暂停的行:


如您所见,我在私有MOC队列中向私有MOC发送保存消息

关于如何解决这个问题有什么想法吗?因为我没有收到错误消息,我真的不知道从哪里开始。谢谢

更新 我按照马库斯的指示替换了我的保存/错误代码。现在改为:

[[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断点时,执行将无缝地继续(因此我可能可以忽略这个问题,尽管更重要的是,我需要解决这个可能相关的问题:)

当我在断点触发时手动输入“po error”时,日志显示:

(lldb) po error
 nil

您可能遇到了一个内部异常。只要存在潜在的合并冲突,核心数据就会在内部引发异常。它可能会解决合并(这是您看到的),但它仍然会抛出

测试此情况时,更改断点只对ObjeO-C异常进行中断,而不中断C++异常。如果你再也看不到休息,那就是你所看到的

此外,还将雷达归档;这个例外很烦人,如果我们有足够的票数让大家看一下,我会很高兴的

更新 有控制台输出吗

error
变量中是否有任何值

我知道您声明没有收到错误消息,但我想验证
error
变量是否为
nil
vs.没有有效负载。您可以在该断点处执行
po错误

此外,我会尝试将该行代码更改为:

[[self privateManagedObjectContext] performBlockAndWait:^{
  NSError *error = nil;
  if (![[self privateManagedObjectContext] save:&error]) {
    NSLog(@"ERROR SAVING MOC IN syncParseObjectLocally: %@\n%@", [error localizedDescription], [error userInfo]);
  }
}];
只是为了测试队列是否真正属于此
NSManagedObjectContext

更新 你在用iCloud吗

如果关闭断点,应用程序运行时是否没有问题

当我提到
poerror
时,我的意思是在遇到断点时执行此操作,并手动键入它

我相信调用
-performBlockAndWait:
也没有效果


我想知道您是否在核心数据中发现了另一个新的内部异常,我希望我们能够找出触发该异常的原因。

苹果的内部异常在调试时让我发疯。谢谢。事实上,我唯一的通用断点是“所有Objective-C异常”(由于AVPlayer奇怪的断点,我将其设置为这种方式)。那我该怎么办?见问题更新。看起来还不走运,但我感谢你的关注。马库斯,我已经回应了所有这些。但更重要的是,我意识到我的主运行中心没有正确地合并,我认为找出为什么会发生这种情况是更符合逻辑的第一步,可能会消除这个问题。我的新问题阐述了这个问题。再次感谢