Базовые данные, использующие фоновое понимание контекста - PullRequest
0 голосов
/ 04 января 2019

У меня есть [self.persistentContainer performBackgroundTask:block], и блок в основном просто читает записи, загружает их на сервер и изменяет / сохраняет записи, чтобы отразить их статус.

Если я вызываю функцию несколько раз подряд, то несколько записей могут быть отправлены одновременно (так как performBackgroundTask: создает новый фоновый контекст), как это может быть сделано одновременно.

Правильнее ли было бы получить один фоновый контекст и повторно использовать его через [self.persistentContainer newBackgroundContext]? Таким образом, у нескольких вызовов не будет проблемы, упомянутой выше, поскольку я предполагаю, что операции теперь будут поставлены в очередь.

Я буду использовать это так: [self.backgroundContext performBlock:block].

Поскольку я не хочу, чтобы одновременно происходили множественные загрузки из-за дублированных загрузок, я хочу вот что:
если есть 4 вызова к performBlock:, внутренне базовые данные backgroundContext обработают 1-й блок, ждут окончания записей, 2-й блок теперь выполняется (и не нашел записей) и завершается, то же самое для 3-го и 4-го вызовов.

Будут ли какие-либо проблемы, если так будет сделано? Или мое понимание неверно?

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