繁体   English   中英

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

[英]Swift- error: Variable 'self.___' used before being initialized

我正在尝试在 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
    }
}

我遇到的问题是,在以“let gr”开头的行上,它说“在初始化之前使用了变量‘self.fooVarSwipe’。” 为什么是这样? 我在外面初始化了类,但它仍然向我显示错误。

任何帮助将非常感激!! 提前干杯和感谢,西奥

在 let gr 中,您的目标是 self,它是 foo 类的一个实例。 由于您尚未初始化它的两个变量,因此当您尝试访问它们时,编译器会抛出错误。 Swift 不接受这种行为。 我建议您将它们声明为 Optional。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM