委托的UITableView超类?

时间:2010-05-11 09:46:31

标签: iphone objective-c cocoa-touch

一个简单的问题,我正在为UITableView设置一个委托,我有一个关于设置委托和dataSource属性的问题。我注意到delegate和dataSource的属性不可用,我认为采用协议会使它们可用。但我现在认为我的委托类的超类可能错了。

目前我有:

-(void)viewDidLoad {
    TestDelegate *tempDelegate = [[TestDelegate alloc] init];
    [self setMyDelegate:tempDelegate];
    // setDelegate
    // setDataSource
    [tempDelegate release];
    [super viewDidLoad];
}

我的TestDelegate界面如下:

@interface TestDelegate : NSObject <UITableViewDelegate, UITableViewDataSource> {
    NSArray *listData;
    int myCounter;
}

我可以问上面是否应该:

@interface TestDelegate : UITableView <UITableViewDelegate, UITableViewDataSource> {
    NSArray *listData;
    int myCounter;
}

加里

编辑:我认为它可能在正确的轨道上:我的委托superClass应该是NSObject,我在Interface Builder中也有一个UITableView。

我添加了@property(非原子,保留)IBOutlet UITableView * myTableView;在Xcode中并将其连接到IB中的UITableView。我现在可以通过IBOutlet访问Xcode中的delegate和dataSource属性。

1 个答案:

答案 0 :(得分:3)

子类化 UITableView与仅仅符合UITableViewDelegateUITableViewDatasource协议之间存在差异。

如果您需要在表视图中使用不同的行为,则需要子类化UITableView。 - &GT; 大部分时间你都不想这样做

UITableView具有delegatedataSource属性,您可以将其分配给符合相应协议的对象。

如果您想要对delegatedataSource属性进行顶级访问,则需要将UITableViewController子类化。(不符合如果您继承UITableViewController

,则委托协议