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

Multiple concurrent perform() calls on same NSManagedObjectContext object

当对同一个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()是异步的,但这是从调用者的角度来看的。我问的是从被叫方的角度。

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