Acabo de descargar los informes de fallos de una de mis aplicaciones para iPhone desde iTunes Connect. El accidente más común tiene una huella como la siguiente:EXC_BAD_ACCESS en UIWebView
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
estoy alrededor del 80% de que este es un asunto interno de UIWebView y fuera del alcance de lo que puedo abordar. ¿Alguien tiene alguna sugerencia sobre cómo reducir este problema para ayudar a identificar si se trata de un problema con el sistema operativo y UIWebView, o un problema que puedo solucionar y abordar en mi código? Gracias por adelantado.
ACTUALIZACIÓN: El UIWebView en cuestión se encuentra en una vista que se libera cuando el usuario pulsa el botón Atrás del controlador de navegación correspondiente. La solución aceptada parece proporcionar una buena explicación de por qué ocurre este error.
Antes solución sugerida:
- (void)dealloc {
[webView release];
[super dealloc];
}
Después solución sugerida:
- (void)dealloc {
webView.delegate = nil;
[webView stopLoading];
[webView release];
[super dealloc];
}
Pondré dinero en un delegado liberado siendo la causa de esto. –
veyr útil, gracias. –
Esto es exactamente lo que me está sucediendo, excelente análisis. –