Swift:addTarget动作只允许类方法吗?

时间:2015-05-27 21:14:02

标签: ios swift addtarget

我试图将目标添加到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的方法,那么一切都按预期工作。

有人对此有解释吗?是不允许或有技术原因?

2 个答案:

答案 0 :(得分:2)

Selector s不需要是class函数,但它们必须对对象可见,调用选择器(即不能标记为private或在方法内)

答案 1 :(得分:0)

您可以使用其他class's instance代替self来调用项目中的任何方法

检查此答案以获取详细信息。 https://stackoverflow.com/a/33068386/2125010