監聽事件的五種方式:swift
一、代理spa
二、block代理
三、通知code
四、kvo鍵值觀察繼承
五、最多見也最容易忽略的 addTarget,如圖事件
使用代理傳遞消息是爲了在控制器和視圖之間解藕,讓視圖可以被多個控制器複用,例如 UITableView
get
可是,若是視圖僅僅只是爲了封裝代碼,而從控制器中剝離出來的,而且可以確認該視圖不會被其餘控制器引用,則能夠直接經過 addTarget
的方式爲該視圖中的按鈕添加監聽方法循環
這樣作的代價是耦合度高,控制器和視圖綁定在一塊兒,可是會省略部分冗餘代碼引用
swift
中代理的使用基本與 OC 相同方法
須要注意的是,定義協議時,須要繼承自 NSObjectProtocol
代理屬性須要使用 weak
防止出現循環引用