我正在尝试将datasource
分配给具有datasource
UIView
的自定义UITableView
的{{1}}属性。代码如下:
subView
CustomUIView.m
- (void)setDataSource:(id<UITableViewDataSource>)dataSource
{
self.dataSource = dataSource;
if (!self.tableView) {
[self createTableView];
[self setUpTableViewSizeAndAddToSuperView];
}
self.tableView.dataSource = self.dataSource;
}
CustomUIView.h
数据源在UIViewController中名为delegateobject的属性中提供。
@property (nonatomic, strong) id<UITableViewDataSource> dataSource;
UIViewController.m
self.customView.dataSource = delegateobject;
UIViewController.h
DelegateObject只是@property (nonatomic, strong) DelegateObject *delegateobject;
NSObject
协议。
但是当我运行应用程序时,它给了我UITableViewDataSource
错误并崩溃了。
我的自定义EXEC_BAD_ACCESS
的{{1}}属性已被释放太多次并停在此行:
datasource
我启用了僵尸对象诊断,但看不到任何其他信息。我该如何解决这个问题?
答案 0 :(得分:1)
当你致电self.dataSource = dataSource
时,你正在创建一个无限循环。当您覆盖setter时,您需要直接设置实例变量,因此将该行更改为:
_dataSource = dataSource;