你好我一直在研究实现这个的正确方法,我找到了多篇文章但不是最好的实现方法。假设我有一个可变测试,这是一个可选项,我想添加一些getter和setter。我遇到的问题是当视图加载时变量将为nil,但我在get函数上一直收到错误:EXEC_BAD_ACCESS。我知道为什么我得到这个,但系统也不允许我自己添加一个setter,任何想法与此一起工作?谢谢你的帮助
代码:
var test: String? {
get {
return self.test
}
set {
//some logic
test = logic response
}
}
override func viewdidload(){
super.viewdidload()
//some logic
test = newValue
}
答案 0 :(得分:3)
您的代码有很多语法错误:)
然而,你并不是在寻找一个吸气剂和放大器。 setter,你想要的是willSet
观察者。
class Controller: UIViewController {
var test: String? {
willSet {
// custom logic
self.test = newValue
}
}
override func viewDidLoad() {
super.viewDidLoad()
test = "my value"
}
}