ios - 对同一 NSManagedObjectContext 对象的多个并发 perform() 调用

标签 ios core-data nsmanagedobjectcontext

当对同一个NSManagedObjectContext 对象调用多个perform() 调用时,它们会按照调用的顺序一一执行吗?我认为这是真的,因为 the document

Core Data uses thread (or serialized queue) confinement to protect managed objects and managed object contexts (see Core Data Programming Guide).

这表明托管对象上下文及其线程具有 1:1 映射,并且所有 perform() 调用都是串行的。但令我害怕的是,我找不到任何关于此的明确讨论,甚至在 Apple 的文档中也没有。

在我的应用程序中,我使用 NSPersistentContainer 设置了一个 CoreData 堆栈,并创建了一个专用的后台上下文来修改托管对象。调用 perform() 调用时,可能会发生上一个 perform() 调用尚未完成的情况。因此,在这种情况下,将它们一一执行至关重要。这就是为什么我想确认我上面的理解。

注意:我知道 perform() 是异步的,但这是从调用者的角度来看的。我要问的是从被叫方的角度来看。

最佳答案

是的,多个执行调用将排队并以相同的顺序执行。

关于ios - 对同一 NSManagedObjectContext 对象的多个并发 perform() 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59852503/

相关文章:

iphone - Webservice调用卡住ipad应用

ios - 在 SceneKit 中,从 scene.rootNode 中删除 SCNNode 节点会导致崩溃

ios - 不播放来自 stream_url ing SoundCloud API 的声音

ios - 此 bundle 无效 info.plist 中所需的 key 设备

ios - Swift:CoreData 错误以及如何设置实体和 DataModel?

objective-c - Swift:@objc(...) 属性

ios - UIView 类在循环结束时被调用

iphone - 如何将 NSManagedObjectContext 传递给嵌入在 NavigationController 和 tabBarController 中的 ViewController

ios - 使用 Storyboard时如何将 NSManagedObjectContext 传递给 View Controller (iOS)

iOS:来自 iOS14 EXC_BAD_ACCESS 线程队列的随机错误消息:NSManagedObjectContext NSInternalAdditionsforgetObjectpropagateToObjectStore