委託方 = 老闆
代理方 = 員工
協議 = 合同bash
委託方從代理方拉取數據,代理方傳遞信息到委託方。ui
翻譯:員工收集材料交給老闆atom
委託方聲明協議並持有委託對象屬性,代理方回調數據給委託方。spa
翻譯:
1. 老闆提供合同
2. 員工簽名
3. 老闆在他的公司里加上這號人
4. 員工找材料並提交
5. 老闆處理材料翻譯
MyView.h
@protocol MyViewDataSource <NSObject>
@required
-(NSString *)dataSourceFunc;
@end
複製代碼
MyViewController.m
//代理方遵照協議
@interface MyViewController () <MyViewDataSource>
@property(nonatomic,strong)MyView * myView;
@end
複製代碼
MyView.h
//委託方聲明代理屬性 注意要用weak修飾
@interface MyView : UIView
@property(nonatomic,weak)id<MyViewDataSource> dataSource;
@end
複製代碼
MyViewController.m
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.myView];
}
-(MyView *)myView{
if (!_myView) {
_myView = [[MyView alloc] initWithFrame:self.view.bounds];
_myView.backgroundColor = [UIColor whiteColor];
//持有數據源
_myView.dataSource = self;
}
return _myView;
}
@end
複製代碼
ViewController.m
//實現數據源方法
-(NSString *)dataSourceFunc{
return @"dataSourceFunc";
}
複製代碼
MyView.m
-(void)layoutSubviews{
[super layoutSubviews];
if ([self.dataSource respondsToSelector:@selector(dataSourceFunc)]) {
NSLog(@"%@",[self.dataSource dataSourceFunc]);
}
}
複製代碼