1

我试图解决有关同一问题的其他问题,但无法找到答案。

错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell setLecture:]: unrecognized selector sent to instance 0xa85d800'

以下是代码中的相关片段:

// UITableViewCell .h
@interface ITCourseDetailTableViewCell : UITableViewCell

@property (strong, nonatomic) ITClass * lecture;

@property (strong, nonatomic) IBOutlet UILabel *lectureCode;

- (void)setLecture:(ITClass *)lecture;

@end

// UITableViewCell .m
- (void)setLecture:(ITClass *)lecture
{
    self.lecture = lecture;

    self.lectureCode.text = self.lecture.classCode;
}

这是被调用的方法。此外,这是发生问题的地方:

// view controller .m
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString * cellIdentifier = @"ITCourseDetailTableViewCell";

    ITCourseDetailTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell) {
        NSArray * nib = [[NSBundle mainBundle] loadNibNamed:cellIdentifier owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    ITClass * currentClass = [[[self course] courseLectures] objectAtIndex:indexPath.row];
    cell.lecture = currentClass;

    return cell;
}

此调用发生问题:cell.lecture = currentClass;

该方法肯定存在于单元类中。在堆栈跟踪中,我可以确认正在实例化正确的单元格并且它具有_lecture实例变量。

相关截图,以确认在 IB 中正确设置了类

在此处输入图像描述

在此处输入图像描述

非常感谢。

4

2 回答 2

1

您没有使用表格单元格的子类。该错误表明您尝试使用常规 UITableCell 实例。确保在 IB 中用于单元格的 nib 中设置单元格类!

在国际文凭

  • 选择您的单元格视图,
  • 打开检查器并转到选项卡 3。
  • 填写“自定义课程”以指向您的课程
于 2013-10-12T20:28:56.840 回答
0

无法识别的选择器有同样的问题。我将 self 添加到如下的选择器函数中并且它起作用了。

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTapOnDescription))
于 2018-07-03T11:26:53.877 回答