我试图将目标添加到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 - 找不到"选择器"
但如果我将该功能移出开关盒并使其成为我的ViewController的方法,那么一切都按预期工作。
有人对此有解释吗?是不允许或有技术原因?
答案 0 :(得分:2)
Selector
s不需要是class
函数,但它们必须对对象可见,调用选择器(即不能标记为private
或在方法内)
答案 1 :(得分:0)
您可以使用其他class's instance
代替self
来调用项目中的任何方法。
检查此答案以获取详细信息。 https://stackoverflow.com/a/33068386/2125010