Я создаю инструмент командной строки Mac в XCode 9.4, используя Swift 4.2.
Я должен сохранить некоторые данные для будущего использования в фоновом потоке, используя GCD, как показано ниже.
let background = DispatchQueue.global(qos: .background)
background.async { [unowned self] in
self.saveData(of: self.user, to: "user details")
}
Это хорошо работает и сохраняет пользовательские данные, когда приложение работает некоторое время после запуска фонового потока. Но иногда пользователь может выйти из приложения во время процесса фонового сохранения. Как заставить инструмент завершить процесс сохранения и затем выйти?