對delegate的使用

2021-06-22 03:57:15 字數 1225 閱讀 9233

其實delegate還是非常厲害的。假如我想建立很多個方法,給全部。m檔案使用,總不能在每個。m檔案後面加上這一堆**把。因此為了實現這個功能,我們把這些方法設定在乙個delegate那裡,然後通過delegate呼叫他就行了。

看到乙個解釋的很好的例子。

我上班的工作主要內容包括 (1)寫**(2)寫文件(3)測試程式(4)接**(5)會見客戶

(1)(2)我自己全權負責,但是後面(3)(4)(5)我不想或者不方便自己做,所以我想找個助手(delegate)幫我做這些事,於是我定了乙個招聘要求(protocol),裡寫明我的助手需要會做(3)(4)(5)這三件事。很快,我招到乙個助手。

即:我.delegate = 助手;

於是以後每當我遇到需要測試程式或者接**的活,我就把他轉交給助手(delegate)去處理,助手處理完後如果有處理結果(返回值)助手會告訴我,也許我會拿來用。如果不需要或者沒有結果,我就接著做下面的事。

這個就是delegate和protocol的意思。

現在我要寫乙個delegete,我們叫他為pickerview的協議

1.在。h檔案裡面

@protocol jingweidelegate   //請秘書delegete 執行好protocol規則

@inte***ce ....

@property(nonatomic,assign)iddelegate;

@end 

@protocol jingweidelegate

-(void)dudaodatepicker:(dudaodatepicker*)datepicker    donebuttondidpushwithdate(nsdate*)date;

-(void)cancelbuttondidpush;

2.在。m

對方法進行描述

假如要傳引數例子如下:

if(_delegate)

[_delegate dudaodatepicker:self  donebuttondidpushwithdate:date];

3.在呼叫他的時候的首先要包他的delegate

然後在呼叫語句如下:

首先建立pickerview,設定delegete為self

此時他會呼叫delegate的方法

-(void)dudaodatepicker:(dudaodatepicker*)datepicker    donebuttondidpushwithdate(nsdate*)date

使用delegate的步驟

1.先搞清楚誰是誰的 delegate 2.定義 協議 協議名稱的命名規範 控制項類名 delegate 3.定義 方法 方法一般都定義為 optional 方法名都以控制項名開頭 方法至少有 1個引數 將控制項本身傳遞出去 4.設定 delegate 物件 比如 myview.delegate x...

委託Delegate使用幫助

using system using system.collections.generic using system.linq using system.text namespace 委託delegate 1,建立委託 public delegate void mydelegate string m...

iOS中delegate(委託)的使用

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