使用 tableHeader TVOS 重新加载 tableView 时断言失败

Posted

技术标签:

【中文标题】使用 tableHeader TVOS 重新加载 tableView 时断言失败【英文标题】:Assertion failure in reloading tableView with tableHeader TVOS 【发布时间】:2015-11-15 15:51:32 【问题描述】:

我正在使用UISearchController,在过滤内容数组后尝试重新加载数据后出现此错误。如果我将 tableView 的 tableHeaderView 之外的任何其他视图设置为 UISearchController 的 searchBar,则不会发生这种情况。如果我使用任何其他视图来保存搜索栏,一切正常。有没有人遇到过这个错误,如果有,解决办法是什么。

-[UITableView _cellReuseMapForType:] 中的断言失败,/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.29.300.16/UITableView.m:3962 2015-11-15 15:43:34.166 AirMediaCenterTV[23894:1052893] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试访问未知视图类型 4 的视图重用图”

【问题讨论】:

最近几天我遇到了同样的问题。我必须完全删除 tableHeader 才能重新加载数据。我的表头中有一个 UISegmentedControl 来进行排序,在表头视图中它会因上述异常而崩溃,但将其移到视图控制器视图中修复了它。如果我有时间,我将整理一个示例并提交错误报告 @earthtrip 是的,我有类似的解决方法,只是删除了搜索栏并将其放在其他地方。 我在 tvOS 上遇到了同样的问题,但我没有使用 UISearchController。对我来说,当我向 loadViewController 添加延迟以远程模拟加载数据时(我现在正在使用假数据),它就开始发生了。基于此,我的猜测是它与线程访问或某种竞争条件有关。 更新:我发现我收到了这个错误,因为我的表格视图的标题中有一个按钮。当我禁用该按钮时,我不再收到此错误。对我来说,解决方法是在重新加载我的表格之前禁用该按钮,然后在完成加载后重新启用它。绝对看起来像是苹果的一个错误。 【参考方案1】:

我在 tvOS 上看到过类似的崩溃问题,但我似乎无法找到解决办法。我没有使用UISearchController。我已经从UITableView 中删除了所有registerClass: 调用,但这似乎不起作用。

【讨论】:

这应该是一条评论。

以上是关于使用 tableHeader TVOS 重新加载 tableView 时断言失败的主要内容,如果未能解决你的问题,请参考以下文章

在设备上的 tvOS Top Shelf Extension 中使用 Alamofire 时出现“dyld:未加载库”错误

如何为 TableHeader 使用渲染器

启用 AVPlayerViewController customInfoViewController 交互 tvOS

我们如何使用 tapGesture 在 Tvos 中播放视频

如何上传通用 tvOS 应用程序?

如何在 jQuery 导出时将 dataTables 中的所有 tableHeader 值更改为大写