2015-04-05 14 views
7

ich eine ganz einfache Anwendung haben: Zeigen Sie eine Web-Ansicht mit http://tv2.dkUIWebview: WebThread EXC_BAD_ACCESS

Ich bin ein Storyboard verwenden, hinzugefügt, um die Web-Ansicht und eine Eigenschaft auf meinem Controller eingestellt. Um die Dinge einfach zu halten, setze ich keinen Delegierten.

In viewDidLoad nenne ich die Web-Ansicht mit der URL i

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://tv2.dk"]]]; 

Jedes Mal, wenn die App startet stürzt aufgrund eines Fehlers in einem Web-Thread Arbeiter finden Sie in diesem Dump laden möchten.

libobjc.A.dylib`objc_msgSend: 
0x1954f7bc0: cmp x0, #0 
0x1954f7bc4: b.le 0x1954f7c30    ; objc_msgSend + 112 
0x1954f7bc8: ldr x13, [x0] 
0x1954f7bcc: and x9, x13, #0x1fffffff8 
0x1954f7bd0: ldp x10, x11, [x9, #16] 
0x1954f7bd4: and w12, w1, w11 
0x1954f7bd8: add x12, x10, x12, lsl #4 
0x1954f7bdc: ldp x16, x17, [x12] 
0x1954f7be0: cmp x16, x1 
0x1954f7be4: b.ne 0x1954f7bec    ; objc_msgSend + 44 
0x1954f7be8: br  x17 
0x1954f7bec: cbz x16, 0x1954f7d80   ; _objc_msgSend_uncached_impcache 
0x1954f7bf0: cmp x12, x10 
0x1954f7bf4: b.eq 0x1954f7c00    ; objc_msgSend + 64 
0x1954f7bf8: ldp x16, x17, [x12, #-16]! 
0x1954f7bfc: b  0x1954f7be0    ; objc_msgSend + 32 
0x1954f7c00: add x12, x12, w11, uxtw #4 
0x1954f7c04: ldp x16, x17, [x12] 
0x1954f7c08: cmp x16, x1 
0x1954f7c0c: b.ne 0x1954f7c14    ; objc_msgSend + 84 
0x1954f7c10: br  x17 
0x1954f7c14: cbz x16, 0x1954f7d80   ; _objc_msgSend_uncached_impcache 
0x1954f7c18: cmp x12, x10 
0x1954f7c1c: b.eq 0x1954f7c28    ; objc_msgSend + 104 
0x1954f7c20: ldp x16, x17, [x12, #-16]! 
0x1954f7c24: b  0x1954f7c08    ; objc_msgSend + 72 
0x1954f7c28: mov x2, x9 
0x1954f7c2c: b  0x1954e1e70    ; objc_msgSend_corrupt_cache_error 
0x1954f7c30: b.eq 0x1954f7c48    ; objc_msgSend + 136 
0x1954f7c34: adrp x10, 18278 
0x1954f7c38: add x10, x10, #1904 
0x1954f7c3c: lsr x11, x0, #60 
0x1954f7c40: ldr x9, [x10, x11, lsl #3] 
0x1954f7c44: b  0x1954f7bd0    ; objc_msgSend + 16 
0x1954f7c48: movz x1, #0 
0x1954f7c4c: movi d0, #0000000000000000 
0x1954f7c50: movi d1, #0000000000000000 
0x1954f7c54: movi d2, #0000000000000000 
0x1954f7c58: movi d3, #0000000000000000 
0x1954f7c5c: ret  

Codezeile

0x1954f7bd0: ldp x10, x11, [x9, #16] 

Überprüfen Sie den vollständigen Quellcode hier aus: https://bitbucket.org/styrken/ios-webview-crash

Ich habe versucht, diesen Code auf mehreren Geräten usw. ausgeführt wird, stürzt auf sie alle.

+0

Versuchen Sie loadRequest aufzurufen: in viewWillAppear :, vielleicht wird es helfen. – ZGl6YXNt

+1

Es funktioniert nicht, den Code in ViewWillAppear oder ViewDidAppear zu setzen. Gleiche Ergebnisse. –

+1

Ich habe herausgefunden, dass mit der Verwendung von NSZombie, ich die folgende Fehlermeldung erhalten: WebviewCrash [4598: 956679] *** - [UIViewAnimationState release]: Nachricht an freigegebene Instanz 0x1707c5370 gesendet. Um das zu beheben, musste ich Animationen in UIVIew mit [UIView setAnimationsEnabled: NO] ausschalten; und jetzt funktioniert es. Es scheint wie ein Fehler in iOS8. –

Antwort

9

Von @RasmusStyrk ‚s Kommentar über

ich herausgefunden habe, dass NSZombie des mit der Verwendung von, ich die folgenden Absturz Nachricht bekam: WebviewCrash [4598: 956.679] *** - [UIViewAnimationState release]: Die Nachricht wurde an die freigegebene Instanz 0x1707c5370 gesendet. Um zu beheben, musste ich Animationen in UIVIew mit [UIView setAnimationsEnabled: NO] deaktivieren; und jetzt funktioniert es. Es scheint wie ein Fehler in iOS8. -

Wir hatten auch das, wo es zufällig abstürzen würde, und von [UIView setAnimationsEnabled: NO] die einzige Sache ist, die vollständig zu lindern dieses Problem gearbeitet hat!

+0

Ja. Ich bin mir ziemlich sicher, dass es ein Fehler ist. Wie auch immer - Sie können die Animationen ausschalten oder die neue WKWebview-Klasse verwenden. –

+0

Sie sind fantastisch !!! – Piwaf

0

In meinem Fall habe ich den dummen Fehler gemacht, das Hinzufügen der WKWebView zur View-Hierarchie vor dem Laden einer Ressource zu vergessen.

2

Thread EXC_BAD_ACCESS sagt alles. UIWebView wird gerne vom Haupt-Thread aufgerufen. Versuchen Sie, Ihren Code wie folgt zu setzen: