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之委托

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