属性'self.delegate'未在super.init初始化

时间:2017-12-20 12:19:36

标签: ios swift

我的程序中发生错误。请帮我解决一下这个错误?

  

发生错误:属性'self.delegate'未在super.init初始化   调用

override init(reuseIdentifier: String?)
    {
        super.init(reuseIdentifier: reuseIdentifier)

        self.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(selectHeaderAction(gestureRecognizer:)))
    }

我其实不知道如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

已经回答here。但只是再次迭代它,如果你的变量没有被声明为可选,那么在init函数运行后它必须不是nil,否则会导致错误。最好将其声明为可选,就像上面提到的帖子一样。

更新

如评论中所述,包括相关的代码部分。代表应该这样声明:

weak var delegate: YourDelegateProtocol?

错误将消失,因为可选变量可以为nil,在您需要打开它之前没有问题。