swift请教这两语句有什么区别?

    func hideKeyboardWhenTappedAround() {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
        view.addGestureRecognizer(tap)
    }
    
    func dismissKeyboard() {
        view.endEditing(true)
    }
}

请教上面语句中#selector(UIViewController.dismissKeyboard)#selector(dismissKeyboard)有什么区别吗?我都能正常运行的啊!

阅读 2.5k
3 个回答

你可以这样理解:

#selector(dismissKeyboard) 等价于 #selector(self.dismissKeyboard) 等价于 #selector(UIViewController.dismissKeyboard)

如果 func 是属于同一个类,那是没什么区别,但不同的类有相同的方法名时,可以避免犯错。

新手上路,请多包涵

#selector(UIViewController.dismissKeyboard) 这个不能用吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进