我正在编写 UITableView 的自定义子类。我需要这个对象本身成为它自己的数据源和委托(delegate),然后这个子类将有它自己的数据源和委托(delegate)。这主要是为了让我可以拦截对数据源的调用并委托(delegate)并可能在将它们发送到它们的实际数据源之前扩充它们。
我的类(class)是这样定义的。
CustomTableView : UITableView<UITableViewDelegate, UITableViewDataSource> {
...
id customDataSource;
id customDelegate;
}
当我尝试设置数据源和委托(delegate)时出现问题。
我想覆盖 uitableview 的属性:
- (void)setDataSource(id<UITableViewDataSource>)ds {
[super setDataSource:self]
customDataSource = ds;
}
基本上,我想告诉父类(UItableView)将数据源设置为自己。在我修改它们之后,我会将任何回调转发给 customDataSource。
[super setDataSource:self] 不会崩溃,但数据源永远不会被设置。有人有什么想法吗?谢谢
最佳答案
我最终不需要使用这个问题中提出的方法,但我确实让它工作了。问题是我不小心合成了需要覆盖的属性,即 dataSource 和 delegate。
对于将来需要这样做的人,只需覆盖自定义子类中的 setDelegate 和 setDataSource 即可。
关于uitableview - uitableview 的自定义子类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340758/