Xcode 11.5 Post-Update Error: Unable to activate constraint with anchors
Xcode 11.5 Post-Update Error: Unable to activate constraint with anchors
我刚更新到 Xcode 11.5,突然我的应用程序抛出了这个错误(如下所列)。
我的应用程序以 TabBar 为基础,并为五个 TabBar 项目中的每一个提供不同的视图。所有视图都工作正常,除了第 3 个视图,在单击该图标时,我收到以下错误消息。
此视图有一个 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.'
现在,我根本没有更改这段代码,在更新发生之前它工作得很好。所以我很困惑如何解决它。
我看到可能有一些标签和视图与其约束层次结构冲突,但我似乎无法弄清楚哪些冲突以及如何解决它们。
此外,我的代码中没有任何引用 'Day 1' 的内容,而且我没有以编程方式添加任何子视图。
到目前为止已完成故障排除
- 放弃所有代码更改 - 仍然是同样的问题
- 通过时间机器将代码回滚到以前的工作时间 - 仍然是同样的问题
- 回滚 Xcode 到 11。4.x - 仍然是同样的问题
- 调试了我的代码,一步一步 - 一切正常
- 已删除任何标签或其他视图 - 仍然会引发错误
- 将约束重置为自动约束 - 仍然是同样的问题
当前约束 [丢弃所有代码后,工作更早]
label.top = top - 9
bottom = label.bottom + 1
label.leading = leading + 8
label.centerX = centerX
这些是唯一的限制,因为我在 tableView 下面添加了一个视图,并且该视图包含标签。
[这些是自动约束]
感谢任何帮助。提前致谢。
设法找出错误 - 似乎更新翻转了我正在使用的自定义 class,这又错过了对依赖项的引用。
在正确恢复自定义 class(在情节提要 - tableViewCell 中)后,它起作用了。
答案 here 启发了我尝试这个解决方案。
我刚更新到 Xcode 11.5,突然我的应用程序抛出了这个错误(如下所列)。
我的应用程序以 TabBar 为基础,并为五个 TabBar 项目中的每一个提供不同的视图。所有视图都工作正常,除了第 3 个视图,在单击该图标时,我收到以下错误消息。
此视图有一个 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.'
现在,我根本没有更改这段代码,在更新发生之前它工作得很好。所以我很困惑如何解决它。
我看到可能有一些标签和视图与其约束层次结构冲突,但我似乎无法弄清楚哪些冲突以及如何解决它们。
此外,我的代码中没有任何引用 'Day 1' 的内容,而且我没有以编程方式添加任何子视图。
到目前为止已完成故障排除
- 放弃所有代码更改 - 仍然是同样的问题
- 通过时间机器将代码回滚到以前的工作时间 - 仍然是同样的问题
- 回滚 Xcode 到 11。4.x - 仍然是同样的问题
- 调试了我的代码,一步一步 - 一切正常
- 已删除任何标签或其他视图 - 仍然会引发错误
- 将约束重置为自动约束 - 仍然是同样的问题
当前约束 [丢弃所有代码后,工作更早]
label.top = top - 9
bottom = label.bottom + 1
label.leading = leading + 8
label.centerX = centerX
这些是唯一的限制,因为我在 tableView 下面添加了一个视图,并且该视图包含标签。
[这些是自动约束]
感谢任何帮助。提前致谢。
设法找出错误 - 似乎更新翻转了我正在使用的自定义 class,这又错过了对依赖项的引用。
在正确恢复自定义 class(在情节提要 - tableViewCell 中)后,它起作用了。
答案 here 启发了我尝试这个解决方案。