10.27代理-协议1

//三个文件

//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()

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //三个文件 //main.swift importFoundation //代理(保姆:ta能帮你去做一些事情)...
    冰凡513阅读 92评论 0 0
  • OC协议&代理 本文为个人学习思考总结,发表目的是为了获得批评指正,交流想法。 /***************手...
    卡普呆萌阅读 1,862评论 0 2
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,857评论 0 6
  • • 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向...
    WSGNSLog阅读 1,285评论 0 1
  • 在说之前,先说明protocol和delegate完全不是一回事,放在一起说,只是因为我们经常在同一个头文件里看到...
    路墨阅读 3,312评论 0 11