代理模式在IOS经常使用,在IOS中使用代理模式非常简单。
A类文件(协议)
a.h 中声明协议
@protocol Button <NSObject> // 声明代理协议
- (void) onClick; // 可以代理的方法
- (void) onDown: (UIButton*) event; // 可以代理的方法
@end@interface a : NSObject
@property(assign, nonatomic) id<a> delegate; // 声明delegate属性
@end
a.m 逻辑文件,内部函数调用方法
- (void) run {[self.delegate onClick];
}
B类文件(实现代理)
b.m 逻辑文件
- (void) viewDidLoad {a* A = [[a alloc] init];a.delegate = self;
}- (void) onClick {NSLog(@"点击了");
}- (void) onDown: (UIButton*) event {NSLog(@" %zd ", event.tag);
}