Несколько одновременных вызовов execute () для одного и того же объекта NSManagedObjectContext - PullRequest
0 голосов
/ 22 января 2020

Когда несколько вызовов perform() вызываются для одного и того же объекта NSManagedObjectContext, будут ли они выполняться один за другим в порядке их вызова? Я думаю, что это правда, потому что в документе написано

Базовые данные используют ограничение потока (или сериализованной очереди) для защиты управляемых объектов и контекстов управляемых объектов (см. Руководство по программированию базовых данных).

, что предполагает, что контекст управляемого объекта и его поток имеют отображение 1: 1, а все вызовы perform() являются последовательными. Но меня пугает, что я не могу найти какого-либо явного обсуждения по этому вопросу, даже в Apple do c.

. В своем приложении я настроил стек CoreData с NSPersistentContainer и создал выделенный фон. контекст для изменения управляемых объектов. Может случиться так, что при вызове perform() предыдущий вызов perform() еще не завершен. Поэтому очень важно, чтобы они выполнялись один за другим в этом случае. Вот почему я хотел бы подтвердить свое понимание выше.

Примечание : я понимаю, perform() является асинхронным, но это с точки зрения вызывающей стороны. То, о чем я спрашиваю, это с точки зрения вызываемого.

1 Ответ

1 голос
/ 22 января 2020

Да, множественные вызовы будут поставлены в очередь и выполнены в том же порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...