objective-c的委托中得受委托类B和委托类A完全分离,伪代码如下:
委托类A:
@interface A
{
id<delegate> delegate;
}
@property id<delegate> delegate;
...
@end
协议:
@protocol delegate
-(void)func1;
@end
受委托类B:
@interface B:<delegate>
@end
@implementation B
-(void)func1
{
...
}
main()
{
A *a = [[A alloc]init];
B *b = [[B alloc]init];
a.delegate = b;
[a.delegate func1];
[a release];
[b release];
}