Только некоторые пользовательские настройки по умолчанию сохраняются после установки новой сборки - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть ряд пользовательских настроек, которые я хочу сохранить. Почти все они успешно делают, но два из них не делают. Когда новая сборка выпущена (мое приложение все еще находится в стадии TestFlight), они сбрасываются. Однако они ДЕЙСТВИТЕЛЬНО сохраняются после выхода и повторного запуска приложения.

Все настройки сохраняются и считываются из UserDefaults таким же образом. Единственное отличие, которое я вижу, состоит в том, что два плохих имеют один и тот же пользовательский класс, Favorite. Но даже если бы проблема была в классе, я не понимаю, почему он работал бы над выходом / повторным запуском, а не обновлением.

Вот как я сохраняю его в applicationDidEnterBackground:

let userSettings = UserDefaults.standard
let JSONencoder = JSONEncoder()
let JSONdecoder = JSONDecoder()

if let encoded = try? JSONencoder.encode(favorites) {
        userSettings.set(encoded, forKey: "favorites")
}

И загружаем его:

if let savedFavorites = userSettings.object(forKey: "favorites") as? Data {
        if let loadedFavorites = try? JSONdecoder.decode([Favorite].self, from: savedFavorites) {
            favorites = loadedFavorites
        }
}

Класс Favorite имеет много свойств, но все они являются стандартными типами (string, bool, int, enum) или другими пользовательскими классами, которые также состоят из стандартных типов.

Я новичок в iOS разработке, поэтому извиняюсь, если это что-то простое, что я пропускаю. Спасибо!

...