当在同一个perform()
对象上调用多个NSManagedObjectContext
调用时,将按调用顺序一一执行吗?我认为这是真的,因为the document说
Core Data使用线程(或序列化队列)限制来保护托管对象和托管对象上下文(请参阅核心数据编程)指南)。
这表明托管对象上下文及其线程具有1:1映射,并且所有perform()
调用都是串行的。但令我感到恐惧的是,即使在苹果的文档中,我也找不到关于此的任何明确讨论。
在我的应用程序中,我使用NSPersistentContainer
设置了CoreData堆栈,并创建了用于修改托管对象的专用背景上下文。可能会发生,当调用perform()
调用时,先前的perform()
调用尚未完成。因此,在这种情况下,必须一一执行它们。这就是为什么我想确认我的理解。
Note:我了解perform()
是异步的,但这是从调用者的角度来看的。我要问的是从被呼叫者的角度。
是,多个执行调用将按相同的顺序排队并执行。