来自 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 文件时出现“此类与键的键值编码不兼容”错误