来自xib键值编码崩溃的UITableHeaderFooterView

时间:2014-02-03 22:13:10

标签: ios iphone objective-c ipad uitableview

我正在从XIB制作一个表格标题,但是我在此行标题中的标签上的键值编码合规性一直在崩溃。

UIView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"MileageEntryTableHeaderView"];

在我的viewDidLoad中,我打电话给

[_tableView registerNib:[UINib nibWithNibName:@"MileageEntryTableHeaderView" bundle:nil] forHeaderFooterViewReuseIdentifier:@"MileageEntryTableHeaderView"];

然后在我的- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section代表中

UIView *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"MileageEntryTableHeaderView"];
return headerView;

我在xib中的标签只是标准标签。我在我的.h中分配它们并将它们从我的文件所有者的xib中连接起来。 (右键单击文件所有者,拖动到适当的标签)。究竟是什么导致了我的崩溃?

2 个答案:

答案 0 :(得分:4)

如果您之前在xib和代码之间创建了连接,然后在代码中重命名了属性,或者删除了它并创建了新连接,那么您将会遇到此崩溃。 XCode没有整理已删除的连接或重命名的连接。准确检查界面构建器中的连接(使用连接检查器),您可能有一个过时的连接。

答案 1 :(得分:2)

对于遇到类似问题的其他人:

调用dequeueReusableHeaderFooterViewWithIdentifier时我也遇到了崩溃。

最后,问题是我从NIB加载UIView,其中iOS期待UITableViewHeaderFooterView。要修复,我必须确保NIB中的UIView在Identity检查器中设置为类型UITableViewHeaderFooterView(或其子类)的自定义类。