ios中關於delegate(委託)的使用心得

從開始從事OC工作到現在大概1年多了,從當初接觸oc的"協議"的不明白,到現在代碼中隨處可見的委託,協議,其中感悟頗多。

首先,大家應該都明白的是委託是協議的一種,顧名思義,就是委託他人幫自己去做什麼事。也就是當自己做什麼事情不方便的時候,就可以建立一個委託,這樣就可以委託他人幫自己去實現什麼方法。

其次,我簡單的總結了一下自己用到的委託的作用有兩個,一個是傳值,一個是傳事件。
1.所謂傳值經常用在b類要把自己的一個數據或者對象傳給a類,讓a類去展示或者處理。(切分緊耦合,和代碼分塊的時候經常用)
2.所謂傳事件就是a類發生了什麼事,把這件事告訴關注自己的人,也就是委託的對象,由委託的對象去考慮發生這個事件後應該做出什麼反映。(這個經常見,例如在異步請求中,界面事件觸發數據層改變等等)
3.利用委託賦值,這種方法感覺是爲了不暴露自己的屬性就可以給自己復值,而且這樣更方便了類的管理,只有在你想要讓別人給你賦值的時候才調用,這樣的賦值更可控一些。(例如tableView中的委託(dateSource)中常見)。

最後,我想分享一下在使用委託的時候的一些心得和注意事項。

心得:delegate的命名要準確,儘量看名字就知道用法。delegate和通知有的用法有些象,但是前者是單對單的,後者是單對多的情況。
注意:在dealloc要把delegate至爲nil,還有就是delegate設置屬性的時候要用assign,不要用retain。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章