当对同一个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/