繁体   English   中英

ViewController与UISwipeGestureRecognizer不符合协议AnyObject错误

[英]ViewController does not conform to protocol AnyObject error with UISwipeGestureRecognizer

尝试实现滑动手势时出现此错误:

var swipeGesture = UISwipeGestureRecognizer(target: self, action: slideToRightWithGestureRecognizer)

func slideToRightWithGestureRecognizer() {

}

我的ViewController看起来像这样:

class ViewController: UIViewController, UIGestureRecognizerDelegate {

}

我得到了target: self错误target: self ,我是否必须实现一些委托,否则还有什么问题呢?

我假设swipeGesture是一个属性-在这种情况下,问题是您在属性初始化期间引用了self ,这是不允许的,因为在所有属性初始化之前, self才可用。

我认为解决此问题的最佳方法是通过在viewDidLoad方法中初始化属性,但是当然该属性必须是可选的-在这种情况下,使用隐式解包的是安全的:

var swipeGesture: UISwipeGestureRecognizer!

override func viewDidLoad() {
    super.viewDidLoad()

    self.swipeGesture = UISwipeGestureRecognizer(target: self, action: "slideToRightWithGestureRecognizer")
}

暂无
暂无

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

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