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()
网友评论