2011-12-19 6 views
8

estoy tratando de despedir a un controlador de vista modal y estoy recibiendo el siguiente error:iOS cómo depurar bloqueos sin un seguimiento de la pila como: [__NSArrayM objectAtIndex:]: índice 0 más allá de los límites para la matriz vacía?

* Terminación de aplicación debido a excepción no detectada 'NSRangeException', razón: '* - [__ NSArrayM objectAtIndex:]: Índice 0 allá límites para la matriz vacía '

En cierto momento, pasé 4 horas tratando de corregir ese error. ¿Puede alguien decirme si hay una forma de ver los rastros de pila para tales errores para entender qué objeto causó el acceso incorrecto?

¡Gracias!

Respuesta

13

En Xcode 4 puede establecer un punto de interrupción de excepción en el editor de punto de interrupción. Cada vez que se lanza una excepción (o se detecta según cómo la configuró), su aplicación se detendrá en la línea que arrojó la excepción.

+0

Me gustaría poder combinar las dos respuestas. No sabía que podía romper con las excepciones. –

+1

¿Por qué alguna vez * no * quieres esto? – rdougan

+0

Con iOS7, este punto de interrupción también se desencadena en excepciones basadas en restricciones, lo que puede ser muy molesto si está intentando trabajar en otra cosa por el momento. –

22

si está ejecutando en el depurador, entonces absolutamente debería ser capaz de ver la línea real que la excepción se está lanzando.

agregue un punto de interrupción de excepción haciendo clic en la pestaña de puntos de interrupción en la parte superior del panel izquierdo, luego haga clic en el signo más en la parte inferior izquierda. Agregue un punto de interrupción de excepción.

enter image description here

Cuestiones relacionadas