ios - 魔法记录 : crash when fetching data in background thread

标签 ios core-data magicalrecord

当我在后台(非主)线程中执行 MR_findFirstWithPredicate 时发生随机崩溃。我在主线程和后台线程上使用 NSManagedObjectContext.MR_defaultContext() 进行所有神奇的记录操作 - 我认为这是问题的根源,但我不确定如何解决它。

当我在后台线程中执行操作时,我应该使用其他上下文吗?我尝试使用 NSManagedObjectContext.MR_context 但所有提取都返回了 nil。还尝试了 NSManagedObjectContext.MR_newPrivateQueueContext 但应用程序在每次获取操作时崩溃。

最佳答案

你是对的,你应该使用 NSPrivateQueueConcurrencyType 的上下文来做后台。听起来 MR_newPrivateQueueContext 是正确的调用,但您可能必须给它一个持久存储或 parentContext。在这种情况下,您可以将 MR_newPrivateQueueContext parentContext 设置为 defaultContext

let defaultContext = NSManagedObjectContext.MR_defaultContext()
let privateContext = NSManagedObjectContext.MR_newPrivateQueueContext
privateContext.parentContext = defaultContext

关于ios - 魔法记录 : crash when fetching data in background thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225772/

相关文章:

ios - 魔法记录 - 上下文(不保存)

unit-testing - MagicalRecord = swift_dynamicCastClassUnconditional 仅在单元测试中

ios - imageView.layoutMargins = UIEdgeInsets.zero 在 UICollectionViewCell 中没有效果

ios - 将 iOS 应用程序上传到 Apple AppStore

swift - CoreData 或 Outlet 集合的轻微泄漏

ios - 如何按不存在关系的实体过滤核心数据

ios - SwiftUI/MapKit 注解选择和导航

ios - 将 UIGestureRecognizer 的所有事件从一个 UIView 传递到另一个 UIView( subview )

ios - fatal error 意外零核心数据

iOS - 使用 MagicalRecord 管理两个 CoreData 模型