ios中關於delegate(委託)

2021-07-30 04:21:26 字數 723 閱讀 5925

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

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

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

其次,我簡單的總結了一下自己用到的委託的作用有兩個,乙個是傳值,乙個是傳事件。

1.所謂傳值經常用在b類要把自己的乙個資料或者物件傳給a類,讓a類去展示或者處理。(切分緊耦合,和**分塊的時候經常用)

2.所謂傳事件就是a類發生了什麼事,把這件事告訴關注自己的人,也就是委託的物件,由委託的物件去考慮發生這個事件後應該做出什麼反映。(這個經常見,例如在非同步請求中,介面事件觸發資料層改變等等)

3.利用委託賦值,這種方法感覺是為了不暴露自己的屬性就可以給自己復值,而且這樣更方便了類的管理,只有在你想要讓別人給你賦值的時候才呼叫,這樣的賦值更可控一些。(例如tableview中的委託(datesource)中常見)。

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

心得:delegate的命名要準確,盡量看名字就知道用法。delegate和通知有的用法有些象,但是前者是單對單的,後者是單對多的情況。

注意:在dealloc要把delegate至為nil,還有就是delegate設定屬性的時候要用assign,不要用retain。

Strategy模式與Delegate委託

strategy 模式是對演算法的封裝。即使是乙個計算行為,如果其實現有其多樣性,為達到易擴充套件的目的,我們也有必要將其抽象出來,以介面的形式來定義。由於充分利用了物件導向的多型性,在呼叫該行為時,其具體的實現是在執行期決定的。以稅收計算為例,假定稅收策略分為個人所得稅,和企業所得稅。根據策略模式...

Strategy模式與Delegate委託

strategy模式是對演算法的封裝。即使是乙個計算行為,如果其實現有其多樣性,為達到易擴充套件的目的,我們也有必要將其抽象出來,以介面的形式來定義。由於充分利用了面向 物件的多型性,在呼叫該行為時,其具體的實現是在執行期決定的。以稅收計算為例,假定稅收策略分為個人所得稅,和企業所得稅。根據策略模式...

iOS中delegate(委託)的使用

委託 委託,就是委託他人幫自己去做什麼事。也就是當自己做什麼事情不方便的時候,就可以建立乙個委託,這樣就可以委託他人幫自己去實現什麼方法。舉例 這個週末放假有空,我想買個手機,所以我有個buyiphone 方法,但是我不知道誰能買手機,所以把這個需求發布出去 比如公布在 上 如果有賣手機的商人 也就...