我首先说我不确定我正在做的事情是否是最好的方法。我有以下场景:一个动态分组TableView
有两个组,第一个有一个静态单元格,第二个有一个由数组填充的动态单元格。第二组工作正常,第一组不行!
第一组只有一个自定义单元格,我使用此代码加载:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// ...
if (indexPath.section == kSectionHeader) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ActorDetailsHeaderCell" owner:self options:nil];
ActorDetailsHeaderCell * headerCell = [topLevelObjects objectAtIndex:0];
headerCell.image.image = [UIImage imageNamed:self.actor.image];
headerCell.actorName.text = self.actor.name;
headerCell.info.text = @"";
return headerCell;
}
// ...
}
该ActorDetailsHeaderCell.xib
文件有一个名为ActorDetailsHeaderCell
扩展类的自定义UITableViewCell
类。如果我留下这样的一切(仅用于测试目的)一切正常,只要我设置一个文件IBOutlet
,ActorDetailsHeaderCell.h
我就会收到这个错误:
'NSUnknownKeyException', reason: '[<ActorDetailsViewController 0x7485a60> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key name.'
我在 Stackoverflow 上发现了这些问题:iPhone: "unrecognized selector sent to instance"和自定义 UITableViewCell 错误,但这些答案似乎并不能解决我的问题。我试图删除.xib
和类并从头开始重写它们,但那个该死的错误总是存在!
我最后说,同样的东西也用在了其他东西上UITableViewController
,而且效果很好!