//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄
一殴胧、delegate優(yōu)勢
1.非常嚴(yán)格的語法啰脚。所有將聽到的事件必須是在delegate協(xié)議中有清晰的定義。
2.如果delegate中的一個方法沒有實現(xiàn)那么就會出現(xiàn)編譯警告/錯誤
3.協(xié)議必須在controller的作用域范圍內(nèi)定義
4.在一個應(yīng)用中的控制流程是可跟蹤的并且是可識別的;
5.在一個控制器中可以定義定義多個不同的協(xié)議莉恼,每個協(xié)議有不同的delegate
6.沒有第三方對象要求保持/監(jiān)視通信過程痊硕。
7.能夠接收調(diào)用的協(xié)議方法的返回值赊级。這意味著delegate能夠提供反饋信息給controller
二、delegate缺點:
1.需要定義很多代碼:1.協(xié)議定義岔绸;2.controller的delegate屬性理逊;3.在delegate本身中實現(xiàn)delegate方法定義
2.在釋放代理對象時,需要小心的將delegate改為nil盒揉。一旦設(shè)定失敗晋被,那么調(diào)用釋放對象的方法將會出現(xiàn)內(nèi)存crash
3.在一個controller中有多個delegate對象,并且delegate是遵守同一個協(xié)議刚盈,但還是很難告訴多個對象同一個事件羡洛,不過有可能。