*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DJLZTableViewCell TianNumberLabel]: unrecognized selector sent to instance 0x7fafbd083e00'

在列表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;
}

你可能感兴趣的:(*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DJLZTableViewCell TianNumberLabel]: unrecognized selector sent to instance 0x7fafbd083e00')