【发布时间】:2020-01-27 23:58:16
【问题描述】:
我正在尝试在 XCode 中添加符号断点以检查后台线程上的 UI 引擎修改。
我正在做的事情如下:
但是,我得到的错误信息总是:
Stopped due to an error evaluating condition of breakpoint 5.1: "!Thread.isMainThread"
Couldn't parse conditional expression:
error: use of undeclared identifier 'Thread'
UI Engine must be modified on main thread.
我不明白为什么断点条件无法评估我的条件。有人可以解释我在这里可能做错了什么吗?我也试过把它放在 Obj-c 中,但没有成功。
编辑:Obj-C 版本,这里:!(BOOL)[NSThread isMainThread]
编辑 2:Xcode 版本 11.3 (11C29)
编辑 3:好的,所以,关闭 XCode 并重新打开已经让 Obj-C 版本“工作”,他们在断点处暂停,每次 4-5 分钟。这有效地使这些断点不可用。不知道如何解决。
【问题讨论】:
-
我们可以看看你的条件的 ObjC 版本吗?
-
@matt 添加了编辑
-
我可以通过将它写成
(BOOL)[NSThread isMainThread] == NO来让它工作。 -
@matt 从技术上讲,你的回答解决了我原来的问题,所以如果你想让它成为一个实际的答案,我可以选择它,从而产生我将进一步研究的当前编辑 3,如果我无法解决,将在stackoverflow上发一篇关于的新帖子
-
是的,我听说过“在断点处暂停很长时间”的问题——之前在 SO 上被问到过——但我自己从未见过,也没有研究过解决它。我认为这是一个完全不同的问题(当然我可能是错的)。
标签: swift xcode breakpoints