Код использует test
для доступа к значению, переданному в установщик.Использование test
осуществляет доступ к получателю, который возвращает nil
.
Чтобы использовать значение, предоставленное установщику, используйте переменную, сгенерированную компилятором newValue
.
class Demo {
class var test: String? {
set {
print("test = \(newValue)")
UserDefaults.standard.set(newValue, forKey: "test")
}
get {
return UserDefaults.standard.string(forKey: "test")
}
}
}
В качестве альтернативы вы можете объявитьиспользуемое имя переменной.
class Demo {
class var test: String? {
set(newTestValue) {
print("test = \(newTestValue)")
UserDefaults.standard.set(newTestValue, forKey: "test")
}
get {
return UserDefaults.standard.string(forKey: "test")
}
}
}
Для первого примера см. Вычисляемые свойства, Сокращенное объявление сеттера .Для второго см. Вычисленные свойства .
https://docs.swift.org/swift-book/LanguageGuide/Properties.html