2011-05-15 17 views

Respuesta

32
  1. Ir al navegador de punto de interrupción XCode 4.
  2. Haga clic en el botón + y seleccione "Añadir punto de interrupción simbólica" Símbolo
  3. Set: a "- [NSAssertionHandler handleFailureInMethod: Objeto: file: lineNumber: Descripción:]"
  4. Haga clic en "Done"

Ahora se detendrá en el depurador tan pronto como la NSA suspenda los incendios. En mi prueba, va al código fuente más cercano y no solo le muestra el ensamblaje donde estableció el punto de interrupción.

más genéricamente, usted puede hacer esto:

  1. Ir al navegador punto de interrupción.
  2. Haga clic en el botón + y seleccione "Añadir punto de interrupción de excepción"
  3. Conjunto Excepción: a
  4. Set Break "Objective-C": para "el tiro"
  5. Haga clic en "Done"

Esto puede ser más o menos útil dependiendo de su código.

Véase también el resultado XCode 4 documentación de "Adición de un punto de interrupción de excepción"

+1

[Esta] (http://stackoverflow.com/a/8422144/377384) respuesta le muestra cómo registrar el mensaje que poner en 'NSAssert'. Muy útil para mi –

+0

Ahora estoy utilizando último camino con mi propia macro de afirmación: 'EONIL_ASSERT (cond, msg ...) {if (! (Cond)) {NSLog (msg);} NSCAssert ((cond), @" Assertion failed. ");} ' – Eonil

+0

Dado que este es un punto de interrupción que detiene la ejecución al comienzo del controlador de aserciones, todo lo que tiene que hacer es presionar 'continuar' y la aplicación continuará y registrará la aserción como siempre. –

0

afirmaciones se desactiva automáticamente, por defecto, en una versión de lanzamiento. Si desea que las aserciones funcionen, realice una compilación de depuración o desactive la configuración de compilación de otros indicadores C donde las aserciones están desactivadas en la compilación de versión.

Cuestiones relacionadas