• @objc || private || 按钮的点击事件


    一、按钮的点击事件

    // 3.监听发布按钮的点击
            // Selector两种写法: 1>Selector("composeBtnClick") 2> "composeBtnClick"
            composeBtn.addTarget(self, action: "composeBtnClick", forControlEvents: .TouchUpInside)
         composeBtn.addTarget(self, action: Selector("composeBtnClick"), forControlEvents: .TouchUpInside)

    二、按钮的点击方法应该如何写

    1. 第一种写法,不添加 private,因为一旦添加,该方法就不会被添加到方法列表中,但这么写就代表,在其他类中也可以拿到这个方法

    func composeBtnClick() {
            print("composeBtnClick")
        }

    2. 第二种写法,使用private,但需要在其前面添加一个@objc,这样这个方法既是私有方法又可以添加到方法列表中

     @objc private func composeBtnClick() {
            print("composeBtnClick")
        }

    原话如下:

    // MARK:- 事件监听
    extension MainViewController {
        // 事件监听本质发送消息.但是发送消息是OC的特性
        // 将方法包装成@SEL --> 类中查找方法列表 --> 根据@SEL找到imp指针(函数指针) --> 执行函数
        // 如果swift中将一个函数声明称private,那么该函数不会被添加到方法列表中
        // 如果在private前面加上@objc,那么该方法依然会被添加到方法列表中
        @objc private func composeBtnClick() {
            print("composeBtnClick")
        }
    }
  • 相关阅读:
    云栖大会2020
    云栖大会2020
    云栖大会2020
    《利用知识图提高抽象摘要的事实正确性》
    onkeyup="this.value=this.value.replace(/[^1-9]D*$/,'')"
    javamail发送excel附件
    model.org.orgId
    window.parent.returnValue
    删除了用户的org和role
    window.top.popForm()表单以窗口的形式弹出
  • 原文地址:https://www.cnblogs.com/iOS363536404/p/5984151.html
Copyright © 2020-2023  润新知