Objective c 如何从UITableView访问数据源出口类?
我有一个MYViewController,其中包含MYTableView,具有以下设置: 1个数据源出口被委托给MYDataSource 2将MYTableView的委托设置为MYTableView 我在委托类中有代码Objective c 如何从UITableView访问数据源出口类?,objective-c,uitableview,delegates,datasource,Objective C,Uitableview,Delegates,Datasource,我有一个MYViewController,其中包含MYTableView,具有以下设置: 1个数据源出口被委托给MYDataSource 2将MYTableView的委托设置为MYTableView 我在委托类中有代码 //MYTableView (delegate is set in storyboard) - (void)scrollViewDidScroll:(UIScrollView *)aScrollView { //code here [(MYDataSource
//MYTableView (delegate is set in storyboard)
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
//code here
[(MYDataSource *) self.dataSource loadMoreWithSuccess:^(){
[self reloadData];
}];
}
但是,数据源loadMoreWithSuccess无法访问,如何调用它
UPD
因此,经过一些调试,我最终得出以下结论:
//MYViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self initTable];
}
-(void) initTable{
NSLog(@"dataSource: %s", class_getName([_table.dataSource class]));
// dataSource: MYDataSource
NSLog(@"delegate: %s", class_getName([_table.delegate class]));
// delegate: MYTableView
}
但在MYTableView中,当我执行以下操作时
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
NSLog(@"dataSource: %s", class_getName([self.dataSource class]));
// dataSource: nil
NSLog(@"delegate: %s", class_getName([self.delegate class]));
// delegate: nil
}
也许我没有注意到《苹果开发者指南》中的一些重要内容?这个方法是在MYTableView还是MYTableViewController中实现的?我想最好在MYTableViewController中实现它,并将MYTableView的委托设置为MYTableViewController,因为您可能不想让表视图成为自己的委托。在MYTableView中。不,MYTableViewController仅用于初始设置,可以从tableView更改为类似instagram的cellView,并在选项卡之间移动。这就是为什么我有单独的dataSource类,我认为它将在tableView中使用,就像在cellView中一样。我将委托方法scrollViewDidScroll放在MYTableView中,因为我不想堆积MYTableViewController。您应该明确地重新考虑将委托设置为MYTableViewController,将对象设置为其自己的委托没有多大意义,授权的全部目的是让另一个对象代表另一个对象执行操作。也许你应该阅读相应的文档,然后调整你的设计:嗯,我明白这一点。UPD问题