在列表tableView里面的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中,对使用xib制作的cell的label赋值出现这个错误,我一看,这是这个方法不能识别,但是我看了我的cell的.h里面是有这个控件的,最后我对比了另外一个通用这样写的模板,发现问题了
[_tableView registerNib:[UINib nibWithNibName:@"DJLZTableViewCell" bundle:nil] forCellReuseIdentifier:@"reuseIdentifier"];
DJTaTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuseIdentifier" forIndexPath:indexPath];
if (!cell) {
cell = [[DJTaTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"reuseIdentifier"];
}
这里的3个名称不是一样的,我复制过来的代码没有改全,[_tableView registerNib:[UINib nibWithNibName:@"DJTaTableViewCell" bundle:nil] forCellReuseIdentifier:@"reuseIdentifier"]; 这里双引号里面的东西没有改过来,这样就正常了
附:朋友建议:
如果是storyboard添加cell的情况
Storyboard:
(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ID"];
cell.model = self.dataArray[indexPath.row];
// 如果是自定义的Cell需要加自己的delegate
//cell.delegate = self;
return cell;
}