我试图解决有关同一问题的其他问题,但无法找到答案。
错误:
*** 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 中正确设置了类
非常感谢。