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

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)有什么区别吗?我都能正常运行的啊!


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


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


你可以这样理解:

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

【热门文章】
【热门文章】