来自 xib 键值编码崩溃的 UITableHeaderFooterView

Posted

技术标签:

【中文标题】来自 xib 键值编码崩溃的 UITableHeaderFooterView【英文标题】:UITableHeaderFooterView from xib key-value-coding crash 【发布时间】:2014-02-03 22:13:10 【问题描述】:

我正在从 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 中。 (右键单击文件所有者,拖动到适当的标签)。究竟是什么导致我在这里崩溃?

【问题讨论】:

你能发布错误信息吗? 【参考方案1】:

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

【讨论】:

我检查了所有连接都在连接管理器中。我再次添加它们以防万一,但仍然崩溃。但是,删除它们不会导致崩溃。虽然我现在没有提及我的标签。 好的,我发现了问题。我必须从视图连接到标签。创建从文件所有者到标签的连接会导致崩溃。 @JMD 你能解释一下你是什么以及如何克服这个问题的吗?【参考方案2】:

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

我在拨打dequeueReusableHeaderFooterViewWithIdentifier时也遇到了崩溃。

最后,问题是我正在从 NIB 加载 UIView,而 ios 期待 UITableViewHeaderFooterView。为了解决这个问题,我必须确保在身份检查器中将 NIB 中的 UIView 设置为 UITableViewHeaderFooterView 类型的自定义类(或其子类)。

【讨论】:

以上是关于来自 xib 键值编码崩溃的 UITableHeaderFooterView的主要内容,如果未能解决你的问题,请参考以下文章

此类与键视图的键值编码不兼容

将项目从情节提要更改为 xib 文件时出现“此类与键的键值编码不兼容”错误

来自 xib 的 UIControl 在 ios 7.1 上崩溃

iOS 崩溃:“此类不符合键 url 的键值编码”

应用程序崩溃,因为 - “类不符合键的键值编码”

来自 nsmanagedObject 的 NSJSONSerialization 表示键不符合键值编码