2016-08-16 18 views

回答

2

#selector只是封装器,该检查语构函数。它只测试你声明的方法是否存在于你的代码中。这样你就可以避免像objectiv-c选择器字符串中的错字。

您不能将指针传递给func,因为在引擎盖选择器中以其他方式工作,然后调用方法。

我认为它就像在目标上执行选择器一样工作,而不是简单地调用选择器方法。

您可以避免在#selector中使用类名称。通过#selector(yourMethod)#selector(yourMethodWithParam(_:))也是有效的。

+0

只有在'self'中声明'Selector'方法时才能绕过类名称。 –

0

UIGestureRecognizer DOC:

public init(target: AnyObject?, action: Selector) // designated initializer 

所以很明显,actionSelector型这就是为什么你必须写#selector(SomeClass.someFunction)

相关问题