17-Swift之委托

作者: NetWork小贱 | 来源:发表于2017-05-24 15:41 被阅读35次

1、什么是委托

答:委托是CoCoa的一个术语,表示讲一个对象的部分功能转交给另一个对象。
注意:一个对象可以是多个对象的委托。

2、我们介绍我们举得例子

安全协议 A
防盗设备 B
用户房子 C

要求:客户要求想知道自己的房子是否被盗?
答:如果房子没有购买安全协议,则客户就不能知道自己的房子是否被盗。否则,客户的房子购买安全协议,就可以知道房子是否被盗。这就是将房子的安全,交给安全公司,有安全公司来查看用户房子是否被盗,这就是委托。

3、委托协议

1.创建一个安全协议
/**
 创建一个协议
 */
protocol SecurityDelegate {
     /**
      我们在这里,只作为一个SecurityDelegate的类,还有一个没有定义的函数
      */
    func CallPolice()
}
2.创建一个客户的房子类
/**
 创建房子的类
 */
class House {
    /**
     委托可以是任何准守SecurityDelegate协议的对象
     */
    var delegate:SecurityDelegate?
    /**
     检测房子是否被盗
     */
    func detectionHouseSecurity() {
         /**
          查看是否有委托安全协议
          */
        delegate?.CallPolice()
    }
    
}
3.安全执行器
/**
 创建一个安全协议的执行类
 */
class Guardog: SecurityDelegate {
    /**
     报警后执行
     */
    func CallPolice() {
         print("有人偷盗")
    }
}

4、安全协议的委托实例

/**
 创建一个房子的实例
 */
let MyHouse = House()
/**
 查看房子情况
 */
MyHouse.detectionHouseSecurity()

/**
 创建安全协议对象实例
 */
let securityDogDelegate = Guardog()
/**
 托付看管
 */
MyHouse.delegate = securityDogDelegate
/**
 在检查房子情况
 */
MyHouse.detectionHouseSecurity()
测试的输出
E7020E79-C42B-4945-BB59-E89088512B12.png

相关文章

  • 17-Swift之委托

    1、什么是委托 答:委托是CoCoa的一个术语,表示讲一个对象的部分功能转交给另一个对象。注意:一个对象可以是多个...

  • 举例说明C#中的委托如何使用

    委托回调静态方法和实例方法 泛型委托之Action泛型委托之Func Funcfunc = new Func(Pe...

  • C# 委托

    什么是委托? 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递。委托是一种特殊类型的对象,其特殊之...

  • 17-swift专题

    在swift中懒加载的写法 只需要在定义的时候加上lazy的修饰符 在swfit中单例的写法 两个步骤 如何避免闭...

  • JS事件的委托

    引用凌云之翼的博客:事件委托。

  • Kotlin 分享 之委托与委托属性

    参考: http://www.runoob.com/kotlin/kotlin-delegated.html 本节...

  • 17-Swift类型转换

    类型转换可以判断实例的类型,也可以将实例看做是其父类或子类的实例。 在swift中类型转换使用is和as操作符实现...

  • JVM之双亲委托机制

    JVM之双亲委托机制 前言: 想了解双亲委托机制,我们就得先了解他的ClassLoader(类加载)。不管是And...

  • 隐藏之冰山委托

    冰山委托(Iceberg Order)。冰山委托是隐藏部分委托数量(不在系统中公开显示)的委托,也称为隐藏委托(h...

  • kotlin之委托介绍

    委托 委托模式是软件设计模式中的一项基本技巧。 在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委...

网友评论

    本文标题:17-Swift之委托

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