Когда несколько вызовов perform()
вызываются для одного и того же объекта NSManagedObjectContext
, будут ли они выполняться один за другим в порядке их вызова? Я думаю, что это правда, потому что в документе написано
Базовые данные используют ограничение потока (или сериализованной очереди) для защиты управляемых объектов и контекстов управляемых объектов (см. Руководство по программированию базовых данных).
, что предполагает, что контекст управляемого объекта и его поток имеют отображение 1: 1, а все вызовы perform()
являются последовательными. Но меня пугает, что я не могу найти какого-либо явного обсуждения по этому вопросу, даже в Apple do c.
. В своем приложении я настроил стек CoreData с NSPersistentContainer
и создал выделенный фон. контекст для изменения управляемых объектов. Может случиться так, что при вызове perform()
предыдущий вызов perform()
еще не завершен. Поэтому очень важно, чтобы они выполнялись один за другим в этом случае. Вот почему я хотел бы подтвердить свое понимание выше.
Примечание : я понимаю, perform()
является асинхронным, но это с точки зрения вызывающей стороны. То, о чем я спрашиваю, это с точки зрения вызываемого.