Swift-错误:在初始化之前使用了变量“self.___”
Posted
技术标签:
【中文标题】Swift-错误:在初始化之前使用了变量“self.___”【英文标题】:Swift- error: Variable 'self.___' used before being initialized 【发布时间】:2017-03-10 23:21:01 【问题描述】:我正在尝试在 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'。”为什么是这样?我在外面初始化了这个类,但它仍然向我显示错误。
任何帮助将不胜感激! 提前欢呼和感谢, 西奥
【问题讨论】:
【参考方案1】:在 let gr 中,你的目标是 self,它是类 foo 的一个实例。 由于您尚未初始化它的两个变量,因此当您尝试访问它们时编译器会抛出错误。 Swift 不接受这种行为。我建议您将它们声明为可选。
【讨论】:
所以不是“目标:自我”,而是“目标:____”?非常感谢您的回复! 不。只需将变量声明为可选。var fooVarSwipe: Any?, fooVarTap: Any?
以上是关于Swift-错误:在初始化之前使用了变量“self.___”的主要内容,如果未能解决你的问题,请参考以下文章
您好,我收到textFieldDidChange(Swift)的两个错误