Accidente UIScrollView EXC_BAD_ACCESS en iOS SDK

Tengo una aplicación de iPhone SDK que tiene varias vistas que aparecen y desaparecen a medida que el usuario crea contenido. Después de usar la aplicación en un dispositivo durante un tiempo, aparece el siguiente bloqueo:

Program received signal:  “EXC_BAD_ACCESS”.
(gdb) backtrace
#0  0x33369ebc in objc_msgSend ()
#1  0x320e5248 in -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded] ()
#2  0x338b4a14 in -[NSObject performSelector:withObject:] ()
#3  0x320e5098 in -[UIAnimator stopAnimation:] ()
#4  0x320e4b7c in -[UIAnimator(Static) _advance:] ()
#5  0x320e4a34 in LCDHeartbeatCallback ()
#6  0x34350e60 in HeartbeatVBLCallback ()
#7  0x332e91c0 in IOMobileFramebufferNotifyFunc ()
#8  0x316532f8 in ?? ()
#9  0x33866b50 in __CFMachPortPerform ()
#10 0x338ae52a in CFRunLoopRunSpecific ()
#11 0x338adc1e in CFRunLoopRunInMode ()
#12 0x3434e1c8 in GSEventRunModal ()
#13 0x32002c30 in -[UIApplication _run] ()
#14 0x32001230 in UIApplicationMain ()
#15 0x00002ff8 in main (argc=1, argv=0x2ffff550) at /Developer/svn/MyCompany/iPhone/MyApplication/Other Sources/main.m:14

Como puede ver en el seguimiento, la única mención de mi código allí es la llamada a main.

Ejecuté Build and Analyze desde Xcode, y también lo configuré para ejecutar el analizador clang en mi proyecto desde la Terminal, y ambos no pueden encontrar ningún problema en el código. Estoy usando una versión de lanzamiento muy reciente del SDK de iOS (todavía no he descargado el 4.1, pero el que estoy usando es el que estaba en el lanzamiento justo antes del 4.1).

Además, he ejecutado la aplicación en Instrumentos con el simulador, y la aplicación no tiene pérdidas de memoria.

Estoy a punto de intentar usar elNSZombieEnabled variable y ver si eso encuentra algo, pero el problema es que necesito usar la aplicación durante 30 a 40 minutos más o menos antes de que falle, y sospecho queNSZombieEnabled Puede que ni siquiera me ayude a encontrar el problema.

Parece que los bloqueos que he visto es cuando una vista modal llama a un delegado en el controlador de vista principal. El controlador de vista principal realiza un procesamiento antes de descartar el controlador de vista modal. En el accidente, hay algunas referencias a animaciones y vistas de desplazamiento, pero no estoy seguro de lo que podría estar haciendo para causar problemas. ¿Alguien tiene alguna sugerencia sobre qué buscar?

EDITAR: He puesto elNSZombieEnabled marca en la aplicación, y en el dispositivo, aparece este mensaje en la consola:

2010-09-11 17:10:33.970 MyApplication[9321:207] *** 
-[MyViewController respondsToSelector:]: message 
sent to deallocated instance 0x7489480

Por lo que puedo decir, estoy configurando los delegados utilizados en la aplicación a nulo en los deallocs de todas mis clases, por lo que estoy atascado en cuanto a dónde buscar a continuación.

Traté de usar elmalloc_history comando de dirección pid en esto, pero decía que no podía encontrar el proceso, probé 9321, 9321: 207 y 207. Además, si trato de usar elMallocStackLogging variable, el programa no se ejecutará en el dispositivo, obtengo un montón demalloc: no se pueden crear mensajes de directorio de registro de pila en la consola y un programa se bloquea

Ah, y por cierto, no puedo usar los zombis para verificar instrumentos, ya que no parece funcionar con un dispositivo, y no puedo obtener el mismo bloqueo en el simulador.

Respuestas a la pregunta(9)

Su respuesta a la pregunta