Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何从UITableView访问数据源出口类?_Objective C_Uitableview_Delegates_Datasource - Fatal编程技术网

Objective c 如何从UITableView访问数据源出口类?

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

我有一个MYViewController,其中包含MYTableView,具有以下设置:

1个数据源出口被委托给MYDataSource 2将MYTableView的委托设置为MYTableView

我在委托类中有代码

//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问题