当我尝试将数据源分配给自定义UIView中的属性时,EXC_BAD_ACCESS崩溃

时间:2013-07-04 07:49:49

标签: ios exc-bad-access uitableview

我正在尝试将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

我启用了僵尸对象诊断,但看不到任何其他信息。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

当你致电self.dataSource = dataSource时,你正在创建一个无限循环。当您覆盖setter时,您需要直接设置实例变量,因此将该行更改为:

_dataSource = dataSource;