Como usar o delegado no NSStream?

Eu sou um novato em Objective-C. Estou tentando aprender a trabalhar comNSStream. Acabei de usar um código simples do Suporte da Apple. Esse código deve abrir um fluxo de um arquivo na minha área de trabalho e mostrar uma mensagem simples quando o delegado for chamado pelo iStream. No final do código, posso ver que o status está correto, mas o delegado nunca é chamado. o que estou perdendo?

#import <Foundation/Foundation.h>

@interface MyDelegate: NSStream <NSStreamDelegate>{
}

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode ;

@end

@implementation MyDelegate

- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode  {
    NSLog(@"############# in DELEGATE###############");
}

@end

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        MyDelegate* myDelegate=[[MyDelegate alloc]init];
        NSInputStream* iStream= [[NSInputStream alloc] initWithFileAtPath:@"/Users/Augend/Desktop/Test.rtf"];

        [iStream setDelegate:myDelegate];

        [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
                           forMode:NSDefaultRunLoopMode];
        [iStream open];

        NSLog(@" status:%@",(NSString*) [iStream streamError]);
    }
    return 0;
}

questionAnswers(1)

yourAnswerToTheQuestion