现在我们遇到了一个奇怪的问题。我们有一个包含 UIWebView 的屏幕来加载本地 html 内容。我发现如果在调用该屏幕的 viewDidLoad 和 viewDidAppear 方法后加载屏幕可能会有很大的延迟(大约 20 秒到 50 秒)。只有当我们通过 xcode 调试器将应用程序加载到 iPhone 并在 xcode 调试器上运行时,才会发生这种情况。如果我直接在 iPhone 上运行应用程序,就不会发生这种情况。如果我将 UIWebView 更改为文本视图,我们将不会看到这么大的延迟。
有没有人看到过类似的问题?
这真的让我很困惑,如果有人能对此有所了解,我将不胜感激。
[编辑] 我为 UIWebView 的委托方法添加了日志记录,所有这些回调都是在那些大延迟之后调用的。
2013/08/13 17:05:53|I|907|PolicyViewController|37| 进入 viewDidLoad
2013/08/13 17:05:53|I|907|PolicyViewController|58| 退出 viewDidLoad
2013-08-13 17:06:49.590 [1885:907] 可达性标志状态:-R ----l- networkStatusForFlags
2013/08/13 17:06:49|I|907|政策视图|107| 进入 webView shouldStartLoadWithRequest
2013/08/13 17:06:49|I|907|政策视图|112| 输入 webViewDidStartLoad
2013/08/13 17:06:50|I|907|政策视图|116| 进入 webViewDidFinishLoad
对于日志文件,您可以清楚地看到 viewDidLoad 和 UIWebView shouldStartLoadWithRequest 方法之间有很大的延迟(近 1 分钟)
[Edit-2]当我在大延迟期间暂停执行时附加线程屏幕截图(尽管按下“暂停”按钮后暂停不会立即发生)
[Edit-3]我们在 iPod touch 上测试了相同的东西,它应该在 iPhone 上使用相同的代码,我们没有重现这个问题。所以在这一点上,它似乎特定于 iPhone。