协议与代理

1.定义协议

protocol GirlProtocal {
    func MDan()
    func happy()
}

2.创建girl类实现委托代理方实现happy()和MDan()方法

class Girl : NSObject {
   //保存代理值
   var delegate : GirlProtocal?
   // 购物开始方法
   func shopBegain(){
       //可选绑定,防止没有值程序出错
       if let _ = delegate{
           //调用代理对象的happy()方法
           self.delegate?.happy()
       }
   }
   //购物完毕
   func shopOver(){
       //可选绑定
       if let _ = delegate {
         //调用代理对象的MDan()方法
           self.delegate?.MDan()
       }
   }
}

3.创建boy类遵守协议并实现协议的中的方法

class Boy : NSObject ,GirlProtocal //遵守协议{
   func MDan() {//实现协议
       print("买单")
   }
   func happy(){//实现协议
       print("😄")
   }
   //打游戏
   func playGame() {
       print("打游戏")
   }
}

4.创建类对象并设置girl的代理对象

//创建Boy类的对象
var boy:Boy=Boy()
//创建Girl类的对象
var girl:Girl=Girl()
//设置girl的的代理对象为boy
girl.delegate=boy
//调用girl的方法
girl.shopBegain()
girl.shopOver()

5.运行结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近看了许多有关协议与代理的文章,自己试着总结了一下,如果有什么不对的地方欢迎指出~ delegate和 prot...
    噫那里有条咸鱼阅读 1,391评论 4 11
  • 代理设计模式是开发中比较常见的设计模式之一,那么在Swift中应该如何实现代理与协议呢? 协议(protocol)...
    S_Lyu阅读 3,062评论 1 7
  • 第八天 协议与代理 【**iOS中重点的一种设计模式】 什么是设计模式是一套被反复使用,多数人知晓的,代...
    037e3257fa3b阅读 247评论 0 1
  • day17 protocol 1. protocol的应用1 限定类型: 我们做某些事情都需要有一定的条件 mai...
    wwwying9阅读 307评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472