gpt4 book ai didi

ios - bool _WebTryThreadLock(bool) 崩溃

转载 作者:行者123 更新时间:2023-11-29 00:21:32 26 4
gpt4 key购买 nike

我在我的应用程序崩溃跟踪工具中发现了一些崩溃。基本上我有一个 tabBarController,其中一个选项卡有一个嵌入式 UIWebView,另一个选项卡有一个带有 UITableView 的 Controller 。所以发生的情况是,当用户首先转到 WebView 并开始加载时,几秒钟后他们转到 tableView Controller ,崩溃随机发生。

从我在崩溃日志中看到的时间来看,当用户点击 UITableView 选项卡时,webView 似乎即将完成加载,因此我在 didFinishLoading 中插入了一段代码。这样我就可以可靠地重现崩溃。代码如下所示:

webViewController:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
[tabBarController gotoTableViewController];
}

tableViewController:

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}

这是崩溃:

bool _WebTryThreadLock(bool), 0x1700113d0: Multiple locks on web thread not allowed! Please file a bug. Crashing now...

我不知道该怎么办,似乎 webView 和 tableView 都锁定了 mainThread?有没有办法“卸载”从主线程加载的 webView ?我尝试过停止加载,但不起作用...

最佳答案

找到了。确实是在mainThread上解析文件造成的。我的文件解析是利用 NSRunLoop 来解析 XML 文件。然而,该文件旨在用作缓存值并需要同步解析,因此我将其放在 mainThread 上。我试图将它放到后台线程上并使用 dispatch_sync,崩溃仍然存在。所以我用 dispatch_semaphore_t 尝试了 dispatch_async,崩溃消失了!

关于ios - bool _WebTryThreadLock(bool) 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44107418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com