Swift 错误:初始化前使用的变量"self.___"



我正在尝试与操场上的手势识别器一起工作,但遇到了一些麻烦。

这是我的班级:

class foo {
    var fooVarSwipe: Any
    var fooVarTap: Any
    init() {
        let gr = UISwipeGestureRecognizer(target: self, action: #selector(foo.bar))
        let tr = UITapGestureRecognizer(target: self, action: #selector(foo.tar))
        helloApple.addGestureRecognizer(gr)
        helloApple.addGestureRecognizer(tr)
        helloApple.isUserInteractionEnabled = true
        self.fooVarSwipe = gr
        self.fooVarTap = tr
    }

    @objc func tar() {
        print("tapped")
    }
    @objc func bar() {
        print("swiped")
        currentViewNum = 1
    }
}

我遇到的问题是,从"让GR"开始的线上,它在被初始化之前说"变量'self.foovarswipe'。为什么是这样?我在外面初始化课程,但仍然向我显示错误。

任何帮助将不胜感激!!欢呼,事先感谢theo

内部让您定位自我,这是类foo的实例。由于您尚未初始化其两个变量,因此当您尝试访问它们时,编译器会引发错误。Swift不接受这种行为。我建议您将它们声明为可选。

最新更新