Вы можете добавить его в будущих выпусках приложения.
Сначала обновите свой класс Person, затем вы можете установить значение versionOfLastRun
и проверить, нет ли он. В этом случае вы проверяете, есть ли еще Пользователь, сохраненный в NSUserDefaults, и если это так, вы создаете новый экземпляр своего класса для сохранения в NSUserDefaults с полом и вы перезаписываете предыдущий объект Person.
let currentVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
let versionOfLastRun = UserDefaults.standard.value(forKey: "VersionOfLastRun") as? String
if versionOfLastRun == nil {
if (UserDefaults.standard.value(forKey: "Person") as? Person) != nil {
let newPerson = Person(//...)
UserDefaults.standard.set(currentVersion, forKey: "Person")
} else {
print("First run")
}
} else if !(versionOfLastRun! == currentVersion) {
print("App updated")
// Upgrade your model
} else {
print("Nothing changed since last run")
}
UserDefaults.standard.set(currentVersion, forKey: "VersionOfLastRun")
В следующих версиях приложения, если вы хотите обновить свою модель данных вы делаете это, проверяя версию последнего запуска.
Надеюсь, что это ответит на ваш вопрос.
Почему бы не определить его как структуру? –
Мне все равно, будет ли он определяться как struct, class или enum. Я просто хочу знать, как вы можете редактировать существующие свойства nsuserdefaults. –