EXC_BAD_ACCESS in UIWebView

Ich habe gerade heruntergeladen die crash reports in einem meiner iPhone apps von iTunes Connect. Die häufigste crash eine trace wie folgt:

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

Thread 0 Crashed:
0   libobjc.A.dylib                 0x3030e6f4 objc_msgSend + 16
1   UIKit                           0x30ebebee -[UIWebView webView:resource:didFinishLoadingFromDataSource:]
2   UIKit                           0x30ebe5ca -[UIWebViewWebViewDelegate webView:resource:didFinishLoadingFromDataSource:]
3   CoreFoundation                  0x32b73b5c __invoking___ + 60
4   CoreFoundation                  0x32bc67be -[NSInvocation invoke]
5   WebCore                         0x320baa86 HandleDelegateSource
6   CoreFoundation                  0x32bb8a96 CFRunLoopRunSpecific
7   CoreFoundation                  0x32bb8356 CFRunLoopRunInMode
8   GraphicsServices                0x30544cd4 GSEventRunModal
9   GraphicsServices                0x30544d80 GSEventRun
10  UIKit                           0x30d2c768 -[UIApplication _run]
11  UIKit                           0x30d2b46c UIApplicationMain

Ich bin mir zu 80% sicher, dass dies ein internes Problem UIWebView und außerhalb der Umfang dessen, was ich beantworten kann. Hat jemand irgendwelche Vorschläge auf, wie zu verengen dieses Problem zu helfen, zu identifizieren, ob es ein Problem mit dem OS und UIWebView, oder ein Problem, das ich lösen kann und die Adresse in meinem code? Vielen Dank im Voraus.

UPDATE: Die UIWebView in Frage ist eine Ansicht, die veröffentlicht wird, wenn der Benutzer sich zuvor auf den zurück-button des entsprechenden Navigations-controller. Die akzeptierte Lösung scheint eine gute Erklärung, warum dieser Fehler Auftritt.

Bevor Lösungsvorschlag:

- (void)dealloc {
    [webView release];

    [super dealloc];
}

Nachdem Lösungsvorschlag:

- (void)dealloc {
    webView.delegate = nil;
    [webView stopLoading];
    [webView release];

    [super dealloc];
}

InformationsquelleAutor der Frage Aaron | 2009-10-05

Schreibe einen Kommentar