1

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

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

4

2 回答 2

2

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

于 2015-05-27T21:23:59.533 回答
0

您可以使用otherclass's instance而不是self.

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

于 2015-10-11T18:21:08.233 回答