带有get和set的选项

时间:2017-06-16 22:07:46

标签: swift swift3

你好我一直在研究实现这个的正确方法,我找到了多篇文章但不是最好的实现方法。假设我有一个可变测试,这是一个可选项,我想添加一些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
 }

1 个答案:

答案 0 :(得分:3)

您的代码有很多语法错误:)

然而,你并不是在寻找一个吸气剂和放大器。 setter,你想要的是willSet观察者。

class Controller: UIViewController {

    var test: String? {
        willSet {
            // custom logic
            self.test = newValue
        }

    }


    override func viewDidLoad() {
        super.viewDidLoad()

        test = "my value"
    }
}