Pregunta

Tengo un bloqueo que está ocurriendo en lo más profundo de UIKit por alguna razón; está ocurriendo un error EXC_BAD_ACCESS algo así como 8 llamadas profundas en una llamada de despidoModalViewController. Intenté habilitar NSZombieEnabled para mi ejecutable, pero el registro de la consola imprime el mismo error independientemente de si los zombis están activados o no y no sé qué objeto está causando el problema. ¿Me falta algo que deba hacer para que la consola imprima la información correcta?

¿Fue útil?

Solución

Lea sobre el uso de Zombies aquí .

Ejecuta esto en gdb. Cuando obtenga el EXC_BAD_ACCESS mire la pila en ese punto (use el comando where de gdb o ejecute el depurador de la GUI de Xcode). Si aún tiene problemas, publique la pila en su pregunta original.

También los zombis solo te ayudarán si estás lidiando con NSObjects. Si estás utilizando rutinas malloc / gratis de bajo nivel, los zombies no te comprarán nada para esas asignaciones.

Otros consejos

Una cosa que aprendí el fin de semana pasado cuando NSZombieEnabled no parecía funcionar en absoluto: asegúrese de que no está pasando un no objeto a algún código.

En mi caso, estaba devolviendo un NSString como solo '' cadena '' en lugar de @ " string " ;. Eso significaba que estaba sobrescribiendo un objeto NSString con la cadena c. Cuando más tarde intenté escribir un nuevo valor en ese objeto, estaba obteniendo un BAD_ACCESS. NSZombie no pudo evitar b / c, no era un objeto que estaba tratando de sobrescribir, sino esa cadena en C.

Como un aparte, trate todas las advertencias como errores en XCode, ojalá pudiera hacer que aparezcan en ROJO en la GUI IDE, a veces son fáciles de omitir.

Parece que algo se ha liberado en exceso en su controlador de vista modal. Comience comentando líneas nuevas hasta que deje de romperse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top