我正在尝试在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’.”为什么是这样?我在外面初始化类,但它仍然显示错误.
任何帮助将非常感激!!
提前干杯谢谢,
西奥
最佳答案 在里面让你的目标是自我,这是一个类foo的实例.
由于您尚未初始化其两个变量,因此编译器在您尝试访问它们时会引发错误.
Swift不接受这种行为.我建议你将它们声明为Optional.