在 base.h 中实现了一个委托函数
id<MADayViewDataSource> _dataSource;
@protocol MADayViewDataSource <NSObject>
- (NSArray *)dayView:(MADayView *)dayView eventsForDate:(NSDate *)date;
@end
在 base.m
- (void)setDataSource:(id <MADayViewDataSource>)dataSource {
_dataSource = dataSource;
[self reloadData];
}
- (id <MADayViewDataSource>)dataSource {
return _dataSource;
}
- (void)reloadData {
NSArray *events = [self.dataSource dayView:self eventsForDate:self.day];
}
在顶部 Viewcontroller.h 它实现了来自 base.h 的 MADayViewDatasource 委托
:UIViewController<MADayViewDataSource> { }
在 base.m 中,它实现了委托函数
- (NSArray *)dayView:(MADayView *)dayView eventsForDate:(NSDate *)startDate {
所以,我对代码的理解是什么时候调用base.m里面的函数
[self.datasource dayView:self eventsForDate:self.day];
self.datasource
无论如何都会调用返回_datasource -(void)setDataSource <MADayViewDataSource>)dataSource {}
..等等,我迷路了..
我的问题是调用的功能序列是什么?来自 base 的数据源与从顶层视图控制器的委托函数返回的数组有何关系?