Проблемы после обновления приложения


#1

Всем привет! Помогите, пожалуйста, решить вопрос. Выпускаю обновление для своего приложения. В нем есть функция - добавить цвет в избранное. В новой версии приложения я изменил структуру массива и добавил дополнительное поле - описание. Все данные пользователь хранит в userDefaults. Теперь, если у пользователя что-то было в избранном, то после обновления приложения он конечно же получит фатальную ошибку при переходе в избранное т.к данные не совпадают. Как быть? Можно ли заставить приложение с обновлением полностью обнулить избранное?


#2

Решил проблему путем добавление в AppDelegate следующего метода:

func checkLounch() {
        let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")
        if launchedBefore  {
            print("Not first launch.")
        } else {
            print("First launch, setting UserDefault.")
            UserDefaults.standard.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
            UserDefaults.standard.synchronize()
            UserDefaults.standard.set(true, forKey: "launchedBefore")
            UserDefaults.standard.synchronize()
        }
    }

Проверяем, является ли запуск после обновления приложения первым. Если да, то полностью обнуляем UserDefaults