美文网首页
Swift4.2 Selector: 按钮点击事件

Swift4.2 Selector: 按钮点击事件

作者: DSA碼侬 | 来源:发表于2019-04-12 15:52 被阅读0次
    一、 随着swift语言的不断更新,语法也会偶尔发生变化。在做新项目时候,Swift4.2版本,创建一个按钮,注册点击事件
    //  事件监听 ,旧版本是这种写法
    composeBtn.addTarget(self, action: Selector("composeBtnClick"), for: .touchUpInside)
    
    

    1.1 但是运行崩溃,警告如下:

    警告1

    1.2 点击"Fix"

    action: Selector(("composeBtnClick")) // 没有警告  但是点击按钮崩溃,崩溃截图如下3
    
    二、实现点击事件方法
    /// 事件监听
    extension PNMainViewController{
       func composeBtnClick(){
            print("composeBtnClick")
        }
    }
    
    三、运行结果崩溃
    运行结果
    分析原因:意思是找不到这个方法,这个方法不在方法列表里,如果加上@objc,就会把该方法添加到方法列表中。所以,@objc必须加上。
    解决办法:

    (因为方法前面没有加上@objc)在需要实现的方法前加上@objc, 上一个警告就变为:

    警告2

    点击"Fix",运行,点击按钮,调用方法成功:

      composeBtn.addTarget(
                     self, 
                     action: #selector(PNMainViewController.composeBtnClick) , 
                     for: .touchUpInside
                     )
    

    总结:
    1 @objc必须加到方法前面
    2 Selector 要正确写选择器

    相关文章

      网友评论

          本文标题:Swift4.2 Selector: 按钮点击事件

          本文链接:https://www.haomeiwen.com/subject/fzdcwqtx.html