2010-05-11 31 views
2

一个简单的问题,我设置了UITableView的委托,并且我有一个关于设置委托和数据源属性的问题。我注意到委托和数据源的属性不可用,我认为采用这些协议会使它们可用。但我现在认为我可能有我的委托类的超类错误。用于委托的UITableView超类?

目前我有:

-(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(nonatomic,retain)IBOutlet UITableView * myTableView;在Xcode中,并将其连接到IB中的UITableView。我现在可以通过IBOutlet访问Xcode中的委托和数据源属性。

+0

这似乎不是一个问题。 “代表和数据源的属性不可用”是什么意思? - 一个UITableView具有这些属性。此外,“采用协议会使它们可用”是什么意思? – 2010-05-11 10:20:03

+0

嗨保罗,我感到困惑,基本上我试图在Xcode中设置UITableView> delegate和UITableView> dataSource,但对如何做到这一点感到困惑。我所缺少的是像IB中添加的所有项目,如果您想通过Xcode访问它们,您需要使用IBOutlet创建一个指向相应对象的指针。 – fuzzygoat 2010-05-11 10:29:37

回答

3

,有子类UITableView并且仅符合UITableViewDelegateUITableViewDatasource协议之间的差。

如果您在表格视图本身需要不同的行为,您可能想要子类UITableView。 - >大多数时候你不会想这样做

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

如果您想要顶级访问delegatedataSource属性,则需要子类UITableViewController(不符合代表协议,如果你的子类UITableViewController

+0

嗨,雅各,你的权利,我感到困惑于如何通过Xcode访问我的UITableView在IB中,并在正确的位置寻找解决方案。您的时间和意见非常感谢。 – fuzzygoat 2010-05-11 10:38:23

+0

@fuzzygoat谢谢。 – 2010-05-11 10:40:59

+0

@fuzzygoat你能接受这个答案吗?谢谢! – 2010-05-20 15:59:53