我试图添加一个目标到UIButton,偶然发现一个奇怪的行为
如果我尝试:
//h = a collection view header
switch myVar {
case "none":
h.button.addTarget(self, action: "buttonTapped:", forControlEvents: .TouchUpInside)
func buttonTapped(sender:AnyObject) {
sendFriendRequest(self.targetUser,nil
}
}
我得到SIGABRT - with "selector not found"
但是如果我把这个函数移出switch case并使它成为我的ViewController的一个方法,一切都像预期的那样工作。
有人能解释一下吗?是不允许还是有技术上的原因?
Selector
不需要是class
函数,但它们必须对调用选择器的对象可见(即不能标记为private
或在方法中)
您可以使用其他class's instance
代替self
调用项目中的任何方法。
查看这个答案的细节。https://stackoverflow.com/a/33068386/2125010