У меня есть свойство оболочки ниже для значений по умолчанию,
@propertyWrapper
class MyUserDefaultWrapper<T> {
let key: String
let defaultValue: T
init(_ key: String, defaultValue: T) {
self.key = key
self.defaultValue = defaultValue
}
var wrappedValue: T {
get {
let suit = UserDefaults.standard
return suit?.object(forKey: key) as? T ?? defaultValue
}
set {
let suit = UserDefaults.standard
suit?.set(newValue, forKey: key)
}
}
}
Я определяю это как,
struct MyUserDefaultsCommon{
@MyUserDefaultWrapper("yearOfBirth", defaultValue: 1980)
static var yearOfBirth: Int
}
И называю это как,
MyUserDefaultsCommon.yearOfBirth = 2010
Когда я устанавливаю значение по умолчанию nil
, сборка завершается неудачно с помощью sig abrt.
Как я могу ограничить передачу необязательного значения по умолчанию из класса оболочки свойства? Или есть другой путь?