2011-11-11 51 views
6

任何人都能夠幫助我與這次崩潰?它在加載時在一些UIWebView實例之間來回切換時會間歇性地發生。iOS Web UI崩潰在「WebThread」

崩潰通常稍有不同,但它總是與具有類似堆棧跟蹤的「WebThread」崩潰。

這裏有兩個崩潰的相關部分:(即未公佈)

 
Date/Time:  2011-11-08 14:29:01.165 -0500 
OS Version:  iPhone OS 5.0 (9A334) 
Report Version: 104 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00000006 
Crashed Thread: 4 

Thread 4 name: WebThread 
Thread 4 Crashed: 
0 ???        0x00000006 0 + 6 
1 WebCore       0x32a36154 -[QuickLookHandleAsDelegate connection:didReceiveData:lengthReceived:] + 72 
2 QuickLook      0x30bee2c2 -[QLThreadInvoker connectionDidReceiveDataLengthReceived:] + 90 
3 CoreFoundation     0x3537a226 -[NSObject performSelector:withObject:] + 38 
4 Foundation      0x32ce2752 __NSThreadPerformPerform + 346 
5 CoreFoundation     0x353efafe __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 10 
6 CoreFoundation     0x353ef2ca __CFRunLoopDoSources0 + 210 
7 CoreFoundation     0x353ee070 __CFRunLoopRun + 648 
8 CoreFoundation     0x353714d8 CFRunLoopRunSpecific + 296 
9 CoreFoundation     0x353713a0 CFRunLoopRunInMode + 100 
10 WebCore       0x324c912a _ZL12RunWebThreadPv + 398 
11 libsystem_c.dylib    0x35ba1c18 _pthread_start + 316 
12 libsystem_c.dylib    0x35ba1ad4 thread_start + 4 
 
Date/Time:  2011-11-08 15:09:01.410 -0500 
OS Version:  iPhone OS 5.0 (9A334) 
Report Version: 104 

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x00000034 
Crashed Thread: 4 

Thread 4 name: WebThread 
Thread 4 Crashed: 
0 ???        0x00000034 0 + 52 
1 CoreFoundation     0x3537a226 -[NSObject performSelector:withObject:] + 38 
2 Foundation      0x32ce2752 __NSThreadPerformPerform + 346 
3 CoreFoundation     0x353efafe __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 10 
4 CoreFoundation     0x353ef2ca __CFRunLoopDoSources0 + 210 
5 CoreFoundation     0x353ee070 __CFRunLoopRun + 648 
6 CoreFoundation     0x353714d8 CFRunLoopRunSpecific + 296 
7 CoreFoundation     0x353713a0 CFRunLoopRunInMode + 100 
8 WebCore       0x324c912a _ZL12RunWebThreadPv + 398 
9 libsystem_c.dylib    0x35ba1c18 _pthread_start + 316 
10 libsystem_c.dylib    0x35ba1ad4 thread_start + 4 

回答

7

我看到你有iOs 5.0。 您正在加載Office文檔(docx,xl​​s)的文件是?

如果是這樣,那麼你的情況和我的情況是一樣的。此問題僅在具有5.0(iPad和iPad 2)的系統上重現,並且在您嘗試在完成加載文件之前停止對象UIWebView時發生此問題。無論是通過致電stopLoading還是loadRequest

這不會發生在txt文件中。

而且如果這樣做,它起源於WebThread從行開始:

#1 0x34912158 in -[QuickLookHandleAsDelegate connection:didReceiveData:lengthReceived:]() 

和跳躍到一些隨機指針,如:

#0 0x00000010 in 0x00000010() 
+1

是的,這正是我所看到的,而且我也從更多的測試中注意到它僅在Office文檔中發生。你知道這個bug是否已經提交給Apple嗎? – Steve

+2

我向Apple報告這是一個bug,他們說這是他們正在研究的已知問題。希望它能在iOS 5.1上線時得到修復。 – Steve

+0

蘋果bug跟蹤系統中的bug鏈接是什麼? – jianhua

2

檢查您的UIWebViewDelegate代表仍然是有效的,如果你的UIWebView是在後臺。這個問題可能是由webview試圖呼叫你的代理人

- (void)webViewDidFinishLoad:(UIWebView *)webView; 

在後臺加載完成後。

+0

是的,我已經檢查,以確保這不是問題。我的代表要麼始終堅持,要麼在我釋放委託前清零webView.delegate指針。 – Steve

+0

你能否提供一些源代碼?很難說出發生了什麼事。 – Piotr

2

要在@ K1w1Geek的答案擴大,問題可能出用戶在試圖發送委託回調之前關閉Web視圖,並且因爲它不存在而崩潰。這並不一定與加載特定文檔類型有關,因爲我只是在導航Salesforce網站時遇到此類崩潰。

所以,如果你有一個關閉按鈕,請嘗試關閉之前,停止加載,並設置委託給無:

- (IBAction)btnCloseWebviewTap:(id)sender{ 
    [_webView stopLoading]; 
    _webView.delegate = nil; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
}