A continuación se muestra lo que copié/pegué desde el Crash Log enviado por el cliente. No puedo entender lo que significa eso: s¡La aplicación se cuelga cuando NavigationController aparece!
Aparentemente parece que la aplicación se bloqueó al navegar de vuelta a una pantalla anterior (y eso es lo que el cliente ha informado). ¿Qué es UIWebDocumentView aquí?
Necesito resolver el fallo, pero estoy atascado aquí por lo que cualquier ayuda es muy apreciada.
P.S. Estoy usando iphone sdk 3.0.
Date/Time: 2009-09-29 18:16:28.458 -0400
OS Version: iPhone OS 3.0 (7A341)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xbbadbeef
Crashed Thread: 4
Thread 4 Crashed:
0 WebCore 0x3588dd74 __ZL17_WebTryThreadLockb + 288
1 WebCore 0x3588e4c0 __ZL18_WebThreadAutoLockv + 52
2 UIKit 0x30aea484 -[UIWebDocumentView _responderForBecomeFirstResponder] + 8
3 UIKit 0x30978b34 -[UINavigationTransitionView transition:fromView:toView:] + 200
4 UIKit 0x30978a54 -[UINavigationTransitionView transition:toView:] + 24
5 UIKit 0x30974470 -[UINavigationController _startTransition:fromViewController:toViewController:] + 1604
6 UIKit 0x30973d90 -[UINavigationController _startDeferredTransitionIfNeeded] + 256
7 UIKit 0x309a7468 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 400
8 UIKit 0x309a72c8 -[UINavigationController popViewControllerAnimated:] + 32
9 Snocell 0x0002ae00 0x1000 + 171520
10 Foundation 0x30554062 -[NSThread main] + 42
11 Foundation 0x305023f2 __NSThread__main__ + 852
12 libSystem.B.dylib 0x31d705a0 _pthread_body + 20
Bien, supongo que encontré la solución. Compartirlo en caso de que alguien abandone aquí: EXC_BAD_ACCESS (SIGSEGV) KERN_INVALID_ADDRESS significa que la dirección virtual a la que hace referencia no está en las tablas de páginas o no tiene acceso. Es una dirección virtual a la que no tiene acceso. Para su dirección de dirección de ejemplo 0x67696c69 es probable que esto sea algo que no sea un puntero que haya sido tratado como un puntero; o su estructura de datos que contiene el puntero fue liberada y sobrescrita con otros datos. Y, luego veo WebCore en el registro, un componente en iPhone WebKit (http://bit.ly/4j4WsN) –
Entonces, lo que estaba haciendo aquí, mostrando un sitio web en UIWebView y antes de que pudiera cargarse por completo, apareciendo volver a los controladores de vista anterior y se estrelló. Descubrí que UIWebView necesita tener su delegado despejado antes de lanzarlo; de lo contrario, si se completa una solicitud web después de liberar UIWebView, intenta volver a llamar al delegado y hace que la aplicación se cuelgue. SOLUCIÓN: agregué "myWebView.delegate = nil;" antes de mostrar el controlador de vista y está funcionando ahora :) –
Estaba teniendo un problema similar - webView.delegate = nil lo resolvió, al igual que para usted. –