我在使用SwiftUI的应用程序中收到很多AttributeGraph循环警告。有什么方法可以调试导致它的原因吗?
控制台中显示的内容如下:
=== AttributeGraph: cycle detected through attribute 11640 ===
=== AttributeGraph: cycle detected through attribute 14168 ===
=== AttributeGraph: cycle detected through attribute 14168 ===
=== AttributeGraph: cycle detected through attribute 44568 ===
=== AttributeGraph: cycle detected through attribute 3608 ===
7条答案
按热度按时间ep6jt1vc1#
日志由(来自private AttributeGraph.framework)生成
因此可以为
print_cycle
设置符号断点它的帮助程度取决于您的场景,但在Xcode中肯定会出现错误生成的堆栈。
0h4hbjxa2#
对我来说,这个问题是由于我禁用了一个文本字段,而用户仍然在编辑它。
要解决这个问题,你必须首先将文本字段作为第一响应者(从而停止编辑),然后禁用文本字段。
laik7k3q3#
对我来说,这个问题是由于试图在更改到包含
TextField
的TabView的选项卡之前聚焦TextField
而引起的。在**更改
TabView
选项卡后,**只需聚焦TextField
即可修复此问题。这似乎与@wristbands的经历相似。
ycggw6v24#
对我来说,这个问题是通过不使用UIActivityIndicator解决的...虽然不知道为什么。下面的组件导致了问题。
h9a6wy2h5#
@Asperi这里是一个最小的例子来重现
AttributeGraph cycle
:基于https://stackoverflow.com/a/59059359/659389的
FocusableTextField.swift
u0sqgete6#
对我来说,问题是我从主包动态加载AppIcon资产。
a1o7rhls7#
我在MacOS上的TabView中使用enum case作为标记值。最后一个case(共四个)触发了三个attributeGraph循环警告。(其他的都很好)。我现在使用Int变量(
InspectorType.book.typeInt
而不是InspectorType.book
)作为我的选择变量,循环警告已经消失。(我可以通过更改选择的类型注解掉有问题的行来演示这一点;我不能在另一个应用程序中重复它,所以显然还有其他的东西参与;我只是还没能确定另一个罪魁祸首。)