Swift-错误:变量' self .___'在初始化之前使用

时间:2017-03-10 23:21:02

标签: ios swift xcode uikit swift-playground

我正在尝试在Playground中使用手势识别器,但遇到了一些麻烦。

这是我的班级:

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
    }
}

我遇到的问题是,以&#34开头的行;让gr"它说"变量' self.fooVarSwipe'在初始化之前使用。"为什么是这样?我在外面初始化课程,但它仍然向我显示错误。

任何帮助将不胜感激!! 提前干杯谢谢, 西奥

1 个答案:

答案 0 :(得分:2)

在里面让你克服自我,这是类foo的一个实例。 由于您尚未初始化其两个变量,因此编译器在您尝试访问它们时会引发错误。 Swift不接受这种行为。我建议你将它们声明为Optional。