我的应用程序中出现 _WebThreadLockFromAnyThread 错误。它不会使我的应用程序崩溃(像这样的所有其他错误都会使我的应用程序崩溃)。
我无法追踪有问题的代码行在哪里。
我知道这个错误是当我尝试在辅助线程上更新 UI 时。我只使用 1 个线程,然后是主线程用于 KVO'ing。我用我所有的方法调用
[self foo]
错误是:
void _WebThreadLockFromAnyThread(bool), 0xb29ca60: Obtaining the web lock from a thread other than the main thread or the web thread. UIKit should not be called from a secondary thread.
每次执行时,错误都会出现在我的日志中,它会在这两个日志条目之间打印:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"observeValueForKeyPath thread%@", [NSThread currentThread]);
if ([keyPath isEqualToString:MAXY])
{
NSLog(@"current tabDictionary:%@", self.tabDictionary);
但应该与我的 if stmt 更改 UI 无关,所以我假设它发生在我程序的其他地方。
我可以使用它的内存地址来确定它是哪个对象吗?或者它正在尝试从哪个线程?