从后台线程更改 UI

Changing UI from a background thread

我收到一条错误消息,指出我正在从后台线程更改自动版式引擎,有没有办法知道是哪个代码块发出了这个警告?或者我只需要自己搜索它?? 谢谢。

可能有更好的答案,但我会先把

对于 Swift:

assert(NSThread.isMainThread(), "Expected code to be called on main thread");

对于 Objective-C:

NSAssert([NSThread isMainThread], @"Expected code to be called on main thread"); 

您怀疑的代码的所有部分。

这样,如果您不在主线程上执行该代码,应用程序将会崩溃。


这个错误是错误还是异常?如果是异常,您可以尝试使用异常断点来捕获它,如下所示:How to debug “Collection was mutated while being enumerated” errors and like, when Xcode does not provide me with enough information? ?


在查看您的确切消息后,您需要的是:

This code PSPDFUIKitMainThreadGuard causes assertions on UIKit access outside the main thread

取自 .