ios - Swift:addTarget Action 是否只允许类方法?

标签 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 - 带有“未找到选择器”

但如果我将函数移出 switch case 并将其作为我的 ViewController 的方法,一切都会按预期进行。

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

最佳答案

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

关于ios - Swift:addTarget Action 是否只允许类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493262/

相关文章:

ios - 将水平和垂直 CAGradientLayer Mask 应用于 UIScrollView/UICollectionView

ios - 将闭包作为目标添加到 UIButton

iphone - AVMutableVideoComposition 以纵向模式捕获的旋转视频

ios - 我的第一个 Cocos2d iPhone 应用程序有问题吗?

objective-c - 如何在 UILabel 中显示 NSMigrationManager 的迁移进度?

ios - 将id解析为NSString

ios - Firebase 扇出数据以更新特定字段删除其他兄弟字段

ios - 如何将 alamofire 中的默认值重用于另一个类/ View Controller

ios - UIButton addTarget 是如何工作的?

ios - swift : Adding an action to an array of buttons