花落√莫相思

17-Swift之委托

2017-05-24  本文已影响35人  NetWork小贱

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
上一篇下一篇

猜你喜欢

热点阅读