【发布时间】:2013-02-14 23:05:05
【问题描述】:
我正在尝试以编程方式为我的表视图设置数据源,我创建了一个类并实现了它(我不知道 implements 是否适合它,OC 新手,我来自 Java) UITableViewDataSource 协议。
@interface PlaylistController : NSObject <UITableViewDataSource, UITableViewDelegate>
在我的ViewController 在viewDidLoad 方法中,我尝试分配数据源,但我得到EXC_BAD_ACCESS。
[playlistView setDataSource:[[PlaylistController alloc] initWithPlaylist:playlist]];
我不知道为什么?
从阅读这里 (SO) 我了解到它要么是强制转换问题(但我确实实现了所需的协议),要么是内存管理问题(但我使用的是 ARC,根本没有触及发布)
【问题讨论】:
-
I'm trying to set datasource programatically to my table view怎么样?应该是我正在尝试以编程方式设置数据源 of 我的表格视图 -
你是对的,修复它:)
-
危险!
@property(nonatomic, assign) id<UITableViewDataSource> dataSource(注意assign)! -
无论如何,你需要发布一个stacktrace。
-
好吧,您不会说您使用的是 ARC 还是 MRR,这不是您立即面临的问题,但如果您使用的是 ARC,那么这样设置数据源将不会保留它(假设属性是
assign)所以它几乎会立即消失。您需要将其分配给视图控制器的实例变量,然后将其设置为数据源。
标签: ios objective-c uitableview datasource