Мое приложение watchOS использует coreData для локального хранилища.
Когда данные изменяются, изменения сохраняются в фоновом контексте:
var backgroundContext = persistentContainer.newBackgroundContext()
Чтобы сделать изменения постоянными, я запускаю фоновую задачу:
backgroundContext.perform {
// …
do {
try self.backgroundContext.save()
} catch {
// Error handling
}
}
Пользователь может в любое время отправить приложение часов в фоновый режим, например, запустив другое приложение.
Сейчас Документы говорят:
Система приостанавливает приложения, которые находятся в фоновом режиме и не имеют ожидающих выполнения задач. Система может удалить приостановленные приложения в любое время, чтобы освободить место для других приложений. Система молча удаляет приостановленные приложения.
Мне кажется, что мое расширение для часов не может быть приостановлено, пока выполняется фоновая задача, которая сохраняет backgroundContext
, но я не уверен.
Если оно может быть приостановлено, мое приложение для часов может быть очищено, а мой постоянный магазин может быть поврежден.
Итак, мой код безопасен?