Можно ли приостановить приложение часов, пока оно выполняет фоновую контекстную задачу с данными ядра? - PullRequest
0 голосов
/ 07 апреля 2020

Мое приложение watchOS использует coreData для локального хранилища.
Когда данные изменяются, изменения сохраняются в фоновом контексте:

var backgroundContext = persistentContainer.newBackgroundContext()  

Чтобы сделать изменения постоянными, я запускаю фоновую задачу:

backgroundContext.perform {
    // …
    do {
        try self.backgroundContext.save()
    } catch {
        // Error handling
    }
}

Пользователь может в любое время отправить приложение часов в фоновый режим, например, запустив другое приложение.
Сейчас Документы говорят:

Система приостанавливает приложения, которые находятся в фоновом режиме и не имеют ожидающих выполнения задач. Система может удалить приостановленные приложения в любое время, чтобы освободить место для других приложений. Система молча удаляет приостановленные приложения.

Мне кажется, что мое расширение для часов не может быть приостановлено, пока выполняется фоновая задача, которая сохраняет backgroundContext, но я не уверен.
Если оно может быть приостановлено, мое приложение для часов может быть очищено, а мой постоянный магазин может быть поврежден.

Итак, мой код безопасен?

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