Swift代理的使用

个人总结, 代理的使用需要五个步骤:

1.设置代理协议,定义可选或者必选方法

2 声明一个delegate属性

3 过滤代理,实现代理方法

4 接收代理

5 实现代理方法

具体实现步骤如下:

设置代理控制器需要做的事

1 设置代理协议,定义可选或者必选方法

@objc protocol XMTestDelegate {  //定义可选方法
        @objc optional func sendDataToBack(str: String)   
       //定义必选方法func sendData2Back(str: String)
}

2 声明一个delegate属性,用可选项代替”weak”,防止循环引用

var delegate: XMTestDelegate?

3 过滤代理,实现代理方法

if delegate != nil {
    delegate?.sendData2Back(str:"goodBye 2016")
    delegate?.sendDataToBack!(str:"hello 2017")    
}

4 接收代理

testVC.delegate=self

5 实现代理方法

extension XMTestViewController: XMTestDelegate {   
       func sendDataToBack(str: String) {        
            print(str)// hello 2017
        }   
       func sendData2Back(str: String) {       
           print(str)// goodBye 2016
      }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,856评论 2 9
  • 代理的使用方式和场景很多,这里我就用代理传值来做例子吧 以上,就是代理传值的基本一个使用,要是有哪里不对的请各位指...
    BrumeLoong阅读 537评论 0 0
  • 本章将会介绍 协议语法属性要求方法要求(Method Requirements)Mutating 方法要求构造器要...
    寒桥阅读 428评论 0 3
  • 协议 定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以遵...
    CDLOG阅读 453评论 0 0
  • 今天,我读了一本书,叫作《呼兰河传》这本书讲的是:幸而戏台上的戏子总算沉着,不为所动,还在那里阿拉阿拉地唱。...
    郎志安阅读 210评论 0 0