2011-11-11 12 views
6

कोई भी इस दुर्घटना के साथ मेरी मदद करने में सक्षम है? लोड होने के दौरान कुछ UIWebView उदाहरणों के बीच आगे और पीछे स्विच करते समय यह अंतःक्रियात्मक होता है।आईओएस UIWebView क्रैश "वेब थ्रेड" में

क्रैश अक्सर थोड़ा अलग होता है, लेकिन यह हमेशा एक समान स्टैक ट्रेस के साथ "वेब थ्रेड" का दुर्घटना होता है।

यहाँ दो दुर्घटनाओं के प्रासंगिक भागों है: (। यानी जारी नहीं)

 
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

मुझे लगता है कि आपके पास आईओएस 5.0 है। क्या वे फ़ाइलें हैं जिन्हें आप लोड कर रहे हैं Office दस्तावेज़ (docx, xls)?

यदि ऐसा है, तो आपका मामला मेरा जैसा ही है। यह समस्या केवल 5.0 (आईपैड और आईपैड 2) के साथ सिस्टम पर पुन: उत्पन्न होती है, और तब होती है जब आप फ़ाइल लोड करने से पहले UIWebView ऑब्जेक्ट को रोकने का प्रयास करते हैं। यह stopLoading या loadRequest

फोन करके चाहे यह txt फाइलों के साथ नहीं होता है।

और अगर यह होता है, यह WebThread में निकलती लाइन से शुरू:

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

और की तरह कुछ यादृच्छिक संकेत करने के लिए कूद:

#0 0x00000010 in 0x00000010() 
+1

हाँ, यह वही है जो मैं देख रहा हूं, और मैंने यह भी परीक्षण से देखा कि यह केवल कार्यालय दस्तावेज़ों के साथ ही हो रहा है। क्या आपको पता है कि यह बग अभी तक ऐप्पल को सबमिट किया गया है? – Steve

+2

मैंने ऐप्पल को एक बग के रूप में बताया और उन्होंने कहा कि यह एक ज्ञात मुद्दा था कि वे काम कर रहे हैं। उम्मीद है कि आईओएस 5.1 लाइव होने पर यह तय किया जाएगा। – Steve

+0

सेब बग ट्रैक सिस्टम में आपका बग यूआरएल लिंक क्या है? – jianhua

2

चेक कि आपके UIWebViewDelegate प्रतिनिधि अभी भी मान्य है अगर आपके UIWebView पृष्ठभूमि में है। यह समस्या आपके प्रतिनिधि को

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

लोड होने के बाद पृष्ठभूमि में कॉल करने का प्रयास कर सकती है।

+0

हाँ मुझे यकीन है कि इस समस्या नहीं है बनाने के लिए चेक किया है। प्रतिनिधियों को रिहा करने से पहले मेरे प्रतिनिधि हमेशा या तो रहते हैं या मैं WebView.delegate पॉइंटर को शून्य करता हूं। – Steve

+0

क्या आप कुछ सोर्स कोड प्रदान कर सकते हैं? यह कहना मुश्किल है कि क्या हो रहा है। – Piotr

2

@ K1w1Geek के जवाब पर विस्तार करने के लिए, समस्या हो सकती है कि उपयोगकर्ता एक प्रतिनिधि कॉलबैक भेजने की कोशिश करने से पहले वेब दृश्य बंद कर रहा है और यह दुर्घटनाग्रस्त है क्योंकि यह अस्तित्व में नहीं है। यह किसी विशेष दस्तावेज़ प्रकार को लोड करने से संबंधित नहीं होना चाहिए क्योंकि मुझे इस क्रैश का सामना करना पड़ रहा है केवल एक Salesforce वेबसाइट पर नेविगेट करना।

तो अगर आप इसमें बंद करें बटन, लोडिंग रोकने के लिए और बंद करने से पहले शून्य करने के लिए प्रतिनिधि सेट करने का प्रयास:

- (IBAction)btnCloseWebviewTap:(id)sender{ 
    [_webView stopLoading]; 
    _webView.delegate = nil; 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
संबंधित मुद्दे