我在我的类中使用NSPersistentContainer
作为依赖项。我发现这种方法非常有用,但是存在一个两难的境地:我不知道我的方法将在哪个线程中被调用。我找到了一个非常简单的解决方案
extension NSPersistentContainer {
func getContext() -> NSManagedObjectContext {
if Thread.isMainThread {
return viewContext
} else {
return newBackgroundContext()
}
}
}
看起来很棒,但我仍有疑问是否有任何陷阱?如果它正常工作,为什么地球上的核心数据会使我们与其背景混淆?
答案 0 :(得分:0)
只要您能够忍受其固有的限制,即
,这是可以的viewContext
,而不是任何其他人。浮现在脑海中的一些弊端:
如果您的非主要排队要求与上述要求相符,那么您最好在performBackgroundTask(_:)
上使用NSPersistentContainer
方法。你在这里没有添加任何东西。
地球上的核心数据让我们对其背景感到困惑?
托管对象上下文是Core Data工作方式的基础部分。因此,跟踪它们是使应用程序不会破坏其数据或崩溃的基本部分。