1

我刚刚更新到 Xcode 11.5,突然我的应用程序抛出了这个错误(如下所列)。

我的应用程序有一个 TabBar 作为基础,并为五个 TabBar 项中的每一个提供不同的视图。所有视图都可以正常工作,除了第三个视图,在单击图标时,我收到以下错误消息。

这个视图有一个 segControl 可以改变 tableView 中的数据。我添加了拉动刷新和搜索功能。当无法提取数据/没有互联网场景时,还会出现一个 UILabel,否则会被隐藏。

错误

Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x60000064b4c0 "UILabel:0x7fb6dd8b8b80'Day 1'.centerY"> and <NSLayoutYAxisAnchor:0x600000649780 "UIView:0x7fb6dd4b89d0.centerY"> because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies?  That's illegal.'

现在,我根本没有更改这段代码,并且在更新发生之前它工作得非常好。所以我很困惑如何解决它。

我看到可能有一些标签和视图与它们的约束层次结构冲突,但我似乎无法弄清楚哪些标签和视图以及如何修复它们。

我的代码中也没有任何内容涉及“第 1 天”,并且我没有以编程方式添加任何子视图。

到目前为止已完成故障排除

  1. 放弃所有代码更改 -仍然是同样的问题
  2. 通过时间机器将代码回滚到以前的工作时间 -仍然是同样的问题
  3. 将 Xcode 回滚到 11.4.x -仍然是同样的问题
  4. 一步一步调试我的代码 -一切似乎都很好
  5. 删除了任何标签或其他视图 -仍然抛出错误
  6. 将约束重置为自动约束 -仍然是同样的问题

当前约束[丢弃所有代码后,更早工作]

 label.top = top - 9 
 bottom = label.bottom + 1 
 label.leading = leading + 8 
 label.centerX = centerX

这些是唯一的约束,因为我在 tableView 下方添加了一个视图,并且该视图包含标签。

[这些是自动约束]

感谢任何帮助。提前致谢。

4

1 回答 1

0

设法找出错误 - 似乎更新翻转了我正在使用的自定义类,这反过来又错过了对依赖项的引用。

正确还原自定义类(在情节提要 - tableViewCell 中)后,它起作用了。

这里的答案是尝试这个解决方案的灵感。

于 2020-05-28T13:40:29.887 回答