我在尝试实现滑动手势时遇到此错误:
var swipeGesture = UISwipeGestureRecognizer(target: self, action: slideToRightWithGestureRecognizer)
func slideToRightWithGestureRecognizer() {
}
我的 ViewController 看起来像这样:
class ViewController: UIViewController, UIGestureRecognizerDelegate {
}
我在 target: self
上收到错误,我是否必须实现一些委托(delegate)或还有什么问题?
最佳答案
我假设 swipeGesture
是一个属性 - 在这种情况下,问题是您在属性初始化期间引用了 self
,这是不允许的,因为 在所有属性都已初始化之前,self
不可用。
我认为解决这个问题的最佳方法是在 viewDidLoad
方法中初始化该属性,但当然该属性必须是可选的 - 我认为在中使用隐式展开的属性是安全的这种情况:
var swipeGesture: UISwipeGestureRecognizer!
override func viewDidLoad() {
super.viewDidLoad()
self.swipeGesture = UISwipeGestureRecognizer(target: self, action: "slideToRightWithGestureRecognizer")
}
关于ios - ViewController 不符合协议(protocol) AnyObject 错误与 UISwipeGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27104968/