【发布时间】:2021-03-04 08:44:02
【问题描述】:
我的断点似乎正在发挥作用。我发现一些断点正在触发,而另一些则没有。这是一个例子:
我尝试创建一个新的 iOS App 项目(界面:Storyboard,生命周期:UIKit App Delegate)。我所做的唯一代码更改是:
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
print("traitCollectionDidChange -- called --")
}
然后我在打印行上有一个断点。项目构建并运行,如果我更改环境覆盖以更改文本/动态类型大小,则会记录上述打印语句,但不会触发断点。
我已按照此处和其他来源的建议检查了许多不同的设置,但我不知道如何解决此问题。我检查了方案、首选项、删除了 DerivedData 文件,甚至重新安装了 xCode... 还尝试重新安装命令行开发人员工具。
我已经花了几个小时试图解决这个问题。任何帮助将不胜感激。
更新:
与此同时,我已向 Apple 记录了一个缺陷。似乎在使用 Accessibility Inspector 进行字体大小更改时,会调用 traitCollectionDidChange(就像使用 Environment Overrides 一样),但不同之处在于 Accessibility Inspector 的断点 是 触发。如果您返回到 Environment Overrides,那么它会“中断”可访问性检查器,然后不再调用 traitCollectionDidChange,并且也不会触发相应的断点。重建会重置此问题。
【问题讨论】:
-
是否有其他断点被击中?如果不是 - 您是在调试模式还是发布模式下运行?
-
是的。其他断点被击中。我只是注意到有些不是。在调试模式下运行。其他断点正在工作,但有些断点与上述不同。我无法分辨出有和没有的区别。
-
也许它有助于将断点导出到 JSON 并检查内部是否有奇怪的东西。要导出,请在调试控制台中使用
breakpoint write -f ~/breakpoints.json。 -
然后试试蛮力。我会发布一个答案,因为评论字段太小了。
标签: swift xcode breakpoints