如何在继承中自我分配?

时间:2012-01-16 13:33:34

标签: objective-c

使用iOS SDK,我有一个UITableViewController的子类

@interface MyViewController : UITablewViewController

@end

UITableViewController的dataSource和delegate属性自动设置为MyViewController。

我不确定为什么会这样。我认为'self'在初始化时将是UITableViewController实例,而不是子类。

有人可以帮助解释委托和dataSource如何指向子类,而不是UITableViewController。

由于

2 个答案:

答案 0 :(得分:1)

我会试着用非常简单的话说:

  1. 您正在创建UITableViewController子类的对象,而不是UITableViewController本身的对象。

  2. 您的委托和dataSource将指向将表格视图放在屏幕上的viewController(通常已完成)。

  3. 所以现在将从这个viewController调用所有的delegate和dataSource方法。

  4. 从Apple查看this sample code。希望这应该更清楚。

答案 1 :(得分:0)

像这样更改你的代码 -

1.来自UIViewController的Inherit MyViewController
2.在MyViewController中创建一个UITableViewController对象 3.将委托和数据源属性设置为self。

代码:

MyViewController.h

    @interface MyViewController : UIViewController

    @end

MyViewController.m

    @implementation MyViewController
      -(void)viewDidLoad{
        UITableViewController *tableView = [[UITableViewController alloc]init];
        tableView.delegate = self;
        tableView.datasource = self;
      }

      ---------- 
   @end

我认为它会对你有帮助......