嗨,我是iphone開發的新手,任何人都可以解釋我爲什麼使用setDelegate,我們應該在哪裏使用它。setDelegate的解釋
[request setDelegate:sender];
在此先感謝。
嗨,我是iphone開發的新手,任何人都可以解釋我爲什麼使用setDelegate,我們應該在哪裏使用它。setDelegate的解釋
[request setDelegate:sender];
在此先感謝。
代表只是一種設計模式;沒有特殊的語法或語言支持。
委託只是另一個對象在發生某些事情時發送消息的對象,以便委託可以處理原始對象不適用的應用程序特定的細節。這是一種無需子類自定義行爲的方式。
某些類(例如NSSpeechSynthesizer)包含委託支持。與協議不同,不提供委託方法不會引發錯誤:類總是提供一個方法,但是如果存在,則調用你的方法。
例如,NSSpeechSynthesizer有一個方法
-(void) speechSynthesizer:(NSSpeechSynthesizer*)sender
didFinishSpeaking:(BOOL)complete;
如果提供相同的聲明的方法,在Fred類,它會被調用,而不是合成的自己的方法,前提是你已經做得比較早,在該類,
speech = [[NSSpeechSynthesizer alloc] initWithVoice:@"com.apple.speech.synthesis.voice.Albert"];
[speech setDelegate:self];
這將工作,但如果你沒有通過
@interface Fred : NSObject <NSSpeechSynthesizerDelegate>, in that
{
宣佈自己作爲一個代表,編譯器會發出警告
。 。 。
(這個例子改編自Hillegass的Cocoa Programming ...)。