與許多人一樣,我對Objective-C和Cocoa編程感興趣。我從概念上知道它是什麼樣的代表,但我不明白如何使用它們或何時使用它們。以下是一些示例代碼:我不明白如何在可可中使用代表,但我知道它們是什麼
#import "AppControler.h"
@implementation AppControler
-(id)init
{
[super init];
NSLog(@"init");
speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil];
//
[speechSynth setDelegate:self];
voiceList = [[speechSynth availableVoices] retain];
return self;
}
我將AppControler設置爲speechSynthasizer的代表。這意味着speechSynthasizer正在告訴AppControler要做什麼。 但我不明白這行: [speechSynth setDelegate:self];
如果您熟悉Java或C#等其他面嚮對象語言,Objective-C中的「self」與其中的「this」意思相同。 – Arkku 2010-04-10 02:13:46
「so [speechSynth setDelegate:self]將speechSynth對象的委託設置爲當前對象,即您的AppControler(sic)實例。」 所以speechSynth對象正在返回到AppController? – lampShade 2010-04-10 03:15:53
lampShade:不。AppController已經有了'speechSynth'對象,因爲您在前面的語句中給出了該對象(將其分配給'speechSynth'實例變量)。 'setDelegate:'消息除了設置合成器的代理外什麼也不做。 – 2010-04-10 12:13:16