以该代码为例。
let swipe = UISwipeGestureRecognizer(
target: self, action: #selector(SomeClass.someFunction)
为什么要使用
#selector(MyClass.function)
?为什么没有选择器包装就只是MyClass.function
? 最佳答案
#selector
只是检查语法的函数的包装。仅当您声明的方法存在于代码中时才进行测试。这样,您将避免在Objective-C选择器字符串中出现错字之类的错误。
您不能像建议的那样传递指向func的指针,因为在底层,选择器除了调用方法外还以其他方式起作用。
我认为它就像在目标上执行选择器一样工作,而不仅仅是调用选择器方法。
您可以避免在#selector
中使用类名。传递#selector(yourMethod)
或#selector(yourMethodWithParam(_:))
也是有效的。
关于ios - 创建UIGestureRecognizer时,为什么其操作使用#selector?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38971464/