我在创建自定义 UITableViewCell 时遇到了难以置信的困难。我已经彻底检查了 stackoverflow 和 google,但发布的所有解决方案要么不完整、不正确,要么做得不够。
所以这就是我想要做的。我想在自定义单元格中加载 MyTableViewController,我们称它们为 MyCustomCell,而不是默认单元格。我希望 MyCustomCell 成为 UITableViewCell 的完整子类,所以我有一个只有一个 UITableViewCell(以及其中的一些测试标签)的 .xib。单元标识符设置为“MyCustomCell”,类设置为“MyCustomCell”。我可以使用 MyCustomCell.h 拖动标签并将其链接起来。
回到 MyTableViewController.m,我得到了以下代码
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ident = @"MyCustomCell";
MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:ident];//appears to crash here
if(cell == nil){
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:ident owner:self options:nil];
for(id currentObject in topLevelObjects){
if([currentObject isKindOfClass:[MyCustomCell class]]){
cell = (MyCustomCell*)currentObject;
break;
}
}
}
cell.myCustomLabel.text = @"hello world";//myCustomLabel from the .xib is linked up to the
//proper variable in MyCustomCell.h, and it's also being synthesized
//I'd like to modify all the custom labels,imageviews,etc here
return cell;
}
运行它会给我以下错误:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyTableViewController 0x7d5ba80> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myCustomLabel.'
当我忘记将某些东西与 .xib 和它的 .h 文件挂钩时,通常会出现这种情况,或者可能在它没有合成时出现,但我已经检查过,它似乎可以解决。我在这里做错了什么吗?我必须做 [[MyCustomCell alloc] init] 或 [[MyCustomCell alloc] initWithCustomMethod:...] 吗?