С пользовательскими настройками по умолчанию вы можете делать практически все, что вам нужно, но имейте в виду, что это внутренняя база данных, для мелочей, таких как проверка логических значений, целочисленных минимальных данных, которые вам нужны как дополнительные логики c не как место хранения, я планирую чтобы сохранить много записей вашей Task
модели, вы должны рассмотреть для пользователя CoreData.
То, что я предлагаю, - это сохранить массив задач в ваших UserDefaults (опять же, если не так много), и когда вы выходите из фона, вам нужно проверить, пусты ли ваши UserDefaults, что-то вроде
override func viewDidLoad() {
super.viewDidLoad()
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: Notification.Name.UIApplicationWillEnterForeground, object: nil)
}
func appMovedToForeground() {
print("come from background")
}
Для массива объектов вам нужно использовать архиватор, вам нужно добавить к этому методу appMoveToForeground
что-то вроде:
guard let dataTasks = UserDefaults.standard.object(forKey: "task") as? Data else { return nil }
if let tasks = try NSKeyedUnarchiver.unarchivedObject(ofClasses: [Task.self], from: dataTasks){
if tasks.isNotEmpty() {
}
}
}