Xcode 8 beta 6 错误:尝试在非拥有协调器上序列化存储访问

Posted

技术标签:

【中文标题】Xcode 8 beta 6 错误:尝试在非拥有协调器上序列化存储访问【英文标题】:Xcode 8 beta 6 error: Attempt to serialize store access on non-owning coordinator 【发布时间】:2016-08-18 04:53:43 【问题描述】:

任何人在使用 Xcode 8 beta 6 时遇到以下错误:尝试在非拥有协调器上序列化存储访问?任何如何消除它的建议将不胜感激。

【问题讨论】:

您需要在问题中提供更多上下文。这是您的应用程序中的运行时错误吗?编译错误?还有什么?酌情提供更多详细信息和相关代码。 执行以下代码行时出现运行时错误:let count = self.backgroundMOC.countOfFetchObjects(entityName: "Distribution", predicate: nil)! 有同样的问题,可能是测试版,稳定版会修复 【参考方案1】:

我在 ios 10.0.1 上执行 performFetch 时看到了同样的错误:

- (void) refreshFetchedResults:(NSFetchedResultsController *)controller 

    [self configureFetchRequest:controller.fetchRequest];

        NSError *error = nil;
        if (![controller performFetch:&error]) 
            DDLogError(@"Unresolved error %@, %@", error, [error userInfo]);
        
    

正如here 报告的那样,执行 performFetch 之前对与 NSFetchedResultsController 关联的 managedObjectContext 执行保存会阻止警告出现。 (就我而言,有一些更改要保存。)

【讨论】:

对不起,我不同意这个解决方案。它可能会解决问题,但在许多情况下,人们可能不想保存上下文来执行提取。如果经常进行上下文保存(与获取相比),上下文保存可能会很昂贵,并且在某些情况下,您可能想要改变上下文、获取对象并丢弃更改(在多上下文环境中不传播到父上下文)。不过,我必须承认,我无法找到解决我们遇到的同样问题的方法……仍在调查中,如果我们找到答案会跟进:) 同意它可能并不适用于所有场景,但它解决了 OP 的问题。 @MichaMazaheri 我知道这个问题有点老了,但是你找到解决这个问题的方法了吗?

以上是关于Xcode 8 beta 6 错误:尝试在非拥有协调器上序列化存储访问的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 beta 6 AnyObject Swift 3 变化

XCode 8 Beta 6 中引入的 UISlider 错误的解决方法?

我更新到 Xcode 8 beta 6 并且出现了非常奇怪的错误

Xcode 8 Beta 6 不支持 iOS 10 Beta 7 sdk

Xcode 6 Beta iOS 8 模拟器无法访问互联网

XCode 6 Beta 6 Beta 7 中的错误 - 可选类型的值未解包