ios - (nulo) libc++ abi.dylib: terminate llamado lanzando una excepción
xcode ipad (11)
Yo uso Xcode 4.5PR y iOS 6beta 2.
No cambié ningún código, mi aplicación lanza una excepción mencionada en el Título.
Utilicé Debug Window, cuya función provocó esta excepción, pero muestra
0x38dda960: push {r4, r5, r6, r7, lr}
¿Cómo puedo encontrar un problema? ¿Cómo puedo arreglarlo?
Si no cambiaste nada, esto podría simplemente estar relacionado con la versión beta de iOS 6 tal como está actualmente.
Sin embargo, para aquellos que buscan en Google este error, aquí hay algunas sugerencias generales:
1) Podría ser el simulador que eligió para construir el mismo código:
Si no ha cambiado ningún código fuente, verifique que su esquema todavía esté apuntando al mismo simulador en el que trabajó por última vez. (Por ejemplo, tratar de presentar un controlador de vista modal ( presentModalViewController:
, pero olvidando usar de manera condicional un popover para iPad, podría causar esto).
2) Si el seguimiento de la pila y la consola no son útiles:
Algunas veces, las únicas cosas en la pila son main
y UIApplicationMain
, lo que hace que sea difícil rastrear qué salió mal en su propia fuente. Es probable que esto sea un signo de que algo está fallando en un método de marco nativo al que llama o que hace que se lo llame.
Si no aparece ningún método u objeto específico en la consola y el seguimiento de la pila no apunta a ningún método de sus propias clases, intente restringir la ejecución lo más cerca posible del punto en el que se lanza la excepción. Al elegir puntos de interrupción en la oscuridad, tiendo a usar un enfoque de búsqueda binaria, seleccionando un punto de pivote y moviéndolo hacia arriba y hacia abajo en el orden de ejecución y seleccionando un nuevo punto "a mitad de camino" según sea necesario.
Asegúrese de estar utilizando la versión de vista previa para desarrolladores (4.5) de xcode y no haya abierto por hábito la versión de lanzamiento (4.3.3) y definitivamente tenga la versión beta de iOS que coincida si no ha actualizado la configuración del proyecto no puede ejecutar la aplicación en iOS 6 beta después de actualizar la configuración del proyecto a iOS 6, la aplicación ya no se ejecutará en dispositivos iOS 5.xx uno por el otro.
Sucede aquí cuando puse una contrain en un objeto iso asignándolo a la supervista
Una razón para que surja este error ...
Tuve este error después de cambiar el nombre de algunas variables de iboutlet en mis archivos .h y .m, pero no en los enlaces del guión gráfico para estas variables. Después de volver a hacer los enlaces, todo volvió a funcionar bien. Espero que esto pueda ayudar a algunos de ustedes.
A veces esto puede suceder si simplemente te falta una biblioteca: estaba haciendo una aplicación de muestra rápida con MKMapView y tuve este error antes de agregar MapKit.framework a mi proyecto.
Algún problema de tiempo ocurre cuando el usuario importa cualquier marco así que también importa ese marco en el archivo .pch en la carpeta de recursos de la aplicación. Espero que esto pueda ayudar a algunos de ustedes.
Esto me estaba sucediendo y desapareció cuando configuré -ObjC en "Otros indicadores de enlazador"
Esta excepción puede ocurrir por diversas razones. La mejor forma de encontrar la causa exacta es mirar la console
. Allí encontrarás texto como este:
*** lorem ipsum lorem ipsum lorem ipsum
*** First throw call stack: (0x1d16012 0x16c3e7e 0xa4ef96 0x607704 0x6079a2 0x606876 0x617cb5 0x618beb 0x60a698 0x2b81df9 0x2b81ad0 0x1c8bbf5 0x1c8b962 0x1cbcbb6 0x1cbbf44 0x1cbbe1b 0x60617a 0x607ffc 0x1d1d 0x1c45) libc++abi.dylib: terminate called throwing an exception
Aquí, lorem ipsum
antes de la First throw call stack
indicará el problema exacto por el que se lanza una excepción. Arregla ese problema y estás listo para ir.
Este error se ve comúnmente cuando elimina manualmente su Guión gráfico de su proyecto y vuelve a utilizar su controlador de visualización para ser utilizado sin un guión gráfico. Asegúrese de que su controlador de vista se agregue al controlador de vista raíz de su ventana en su AppDelegate y que el controlador de vista inicie sin un nombre de punta (ya que lo habría eliminado al eliminar su guión gráfico) Y, LO QUE ES IMPORTANTE, elimine las filas de su pList archivo que indica a la aplicación que debe existir un archivo de guión gráfico, como "Nombre base del archivo del guión gráfico (iPad)" o "Nombre básico del archivo del guión gráfico (iPhone)". Una vez que se hayan ido, su aplicación dejará de buscar un guión gráfico y ¡usted estará dorado como un golden retriever!
Establezca un punto de interrupción en las excepciones de C ++ para encontrar dónde se está lanzando.
Esto me atascó por un tiempo, y luego descubrí que podía obtener la pila de rastreo EXACTA de la excepción estableciendo un punto de interrupción para todas las excepciones.