我正在编写UITableView的自定义子类。我将需要此对象本身作为其自己的数据源和委托,然后该子类将具有自己的数据源和委托。这样做主要是为了使我可以拦截对数据源的调用并委派,并有可能在将其发送到实际数据源之前对其进行扩展。
我的课是这样定义的。
CustomTableView : UITableView<UITableViewDelegate, UITableViewDataSource> {
...
id customDataSource;
id customDelegate;
}
当我尝试设置数据源和委托时出现问题。
我想重写uitableview的属性:
- (void)setDataSource(id<UITableViewDataSource>)ds {
[super setDataSource:self]
customDataSource = ds;
}
基本上,我想告诉父类(UItableView)将数据源设置为self。修改完之后,我会将所有回调转发到customDataSource。
[super setDataSource:self]不会崩溃,但是数据源永远不会被设置。有人有什么想法吗?谢谢
最佳答案
我最终不需要使用此问题中提出的方法,但是确实可以使用它。问题是我意外地综合了需要覆盖的属性,即dataSource和委托。
对于将来需要这样做的人,只需在自定义子类中重写setDelegate和setDataSource。