【发布时间】:2010-05-11 09:46:30
【问题描述】:
一个简单的问题,我正在为 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;
}
加里
编辑:我认为它可能在正确的轨道上:我的委托超类应该是 NSObject,我在 Interface Builder 中也有一个 UITableView。
我添加了@property(nonatomic, retain)IBOutlet UITableView *myTableView;在 Xcode 中并将其连接到我在 IB 中的 UITableView。我现在可以通过 IBOutlet 访问 Xcode 中的 delegate 和 dataSource 属性。
【问题讨论】:
-
那里似乎没有问题。 “委托和数据源的属性不可用”是什么意思? - UITableView 具有这些属性。另外,“采用协议将使它们可用”是什么意思?
-
嗨,保罗,我很困惑,基本上我试图在 Xcode 中设置 UITableView>delegate 和 UITableView>dataSource 但对如何做感到困惑。我缺少的是,就像您在 IB 中添加的所有项目一样,如果您想通过 Xcode 访问它们,您需要使用 IBOutlet 创建指向相应对象的指针。
标签: iphone objective-c cocoa-touch