问题描述
我以编程方式创建了一个 UIView
并将 UIPanGestureRecognizer
添加到它:
I have programmatically created an UIView
and added UIPanGestureRecognizer
to it:
class ViewController: UIViewController{
var preludeView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
initViews()
createConstrants()
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector(("handleTap:")))
preludeView.addGestureRecognizer(panGestureRecognizer)
}
func handleTap(recognizer: UIPanGestureRecognizer) {
print("WORKING!!!!")
}
func initViews() {
...
}
func createConstrants() {
...
}
}
但是当我触摸视图时,Xcode 抛出错误:
But when I am touching the view Xcode is throwing an error:
2016-07-13 09:24:29.918 Draft_Hypa_02[661:83024]-[Draft_Hypa_02.ViewController handleTap:]:无法识别的选择器发送到实例 0x17d94a10 2016-07-13 09:24:29.921Draft_Hypa_02[661:83024] * 由于未捕获的异常而终止应用'NSInvalidArgumentException',原因:'-[Draft_Hypa_02.ViewControllerhandleTap:]: 无法识别的选择器发送到实例 0x17d94a10'* 第一次抛出调用栈:(0x249cf91b 0x2416ae17 0x249d52b5 0x249d2ee1 0x248fe238 0x294ae9eb 0x290e984f 0x28f7aff1 0x294afd0x28f3ba57 0x28f38017 0x28f78ec9 0x28f7867b 0x28f49125 0x28f476d30x24991dff 0x249919ed 0x2498fd5b 0x248df229 0x248df015 0x25ecfac90x28fb1189 0x93144 0x24587873) libc++abi.dylib:终止于NSException 类型的未捕获异常
但是,如果我删除 handleTap
函数中的参数并删除 Selector(("handleTap:"))
中的冒号,一切正常!
However, if I remove argument in the handleTap
function and remove the colon in the Selector(("handleTap:"))
, everything works fine!
已经花了一天时间尝试解决此问题,非常感谢您的帮助!
Already spent a day to try to fix this issue and would be very appreciate for your help!
推荐答案
如果你使用的是 swift
3 你的 selector
应该是这样的
If you are using swift
3 your selector
should be like this
#selector(self.handleTap(recognizer:))
这篇关于Swift 3:无法识别的选择器发送到实例 Xcode 8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!