//三个文件
//main.swift:
importFoundation
//代理(保姆:ta能帮你去做一些事情)-协议(保姆能帮你做的事情:洗碗,洗衣服,拖地,带小孩)
//仆人
letwaiter =classA()
//主人
letleader =classB()
//主人找了一个仆人
//只要设置了代理,就要遵守协议
leader.delegate=waiter
leader.doHouseWork("凌晨")
//classA.swift:
importFoundation
//classA是仆人的身份
classclassA:NSObject{
}
//遵守协议,并实现协议里面的方法
/*格式:
extension本类名:协议名{
实现协议里面的方法
}
*/
extensionclassA:HouseWork{
//实现协议里面的两个方法
funcwashClose() {
println("手洗")
}
funccareBaby() {
println("认真对待")
}
}
//classB.swift:
importFoundation
//协议:
/*
protocal协议名{
}
*/
protocolHouseWork{
//代理(仆人能够为主人做的事情),只写方法名(具体的实现听主人)
funcwashClose()
funccareBaby()
}
//classB是主人的身份
classclassB:NSObject{
//定义一个代理:需要的一个仆人,这个仆人要做的事情
//格式:var delegate:协议名?
vardelegate:HouseWork?
funcdoHouseWork(time:String){
lettime ="凌晨"
iftime =="凌晨"{
//谁的代理去做某一件事情
leader.delegate?.careBaby()
}
iftime =="中午"{
leader.delegate?.washClose()
}
}
}