iphone - para - sdk analytics
Cómo agregar NSDebug.h y usar NSZombie en iPhone SDK (3)
No tiene que incluir NSDebug.h ni importar ningún marco especial para usar NSZombies. Básicamente, enciéndalos en sus variables de entorno y, luego, si intenta enviar un mensaje a un objeto tratado, ENTONCES verá algo en su consola, en la línea de:
2009-02-10 21:17:08.546 MyApp[16926:20b] *** -[CFString _cfTypeID]: message sent to deallocated instance 0x4babc0
Quiero habilitar NSZombies para mi aplicación de iPhone.
He leído varios artículos en línea y todavía no estoy seguro del procedimiento exacto.
Sé que tengo que establecer las variables de entorno, que he hecho:
NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO
Creo (no estoy seguro), tengo que importar NSDebug.h. Cuando verifico los encabezados del Marco de la Fundación en mi proyecto, no hay NSDebug.h.
Después de algunas investigaciones, las encontré en el iPhoneSimulator Foundation Framework. Entonces (y no estoy seguro de si esto es correcto), importé el iPhoneSimualtor Foundation Framework en mi proyecto. Noté que el archivo TODAVÍA no aparece en la ventana del proyecto, aunque puedo ubicarlo en el Buscador. (¿Es este comportamiento normal?).
Así que abrí el principal y agregué:
#ifdef TARGET_IPHONE_SIMULATOR
#import <Foundation/NSDebug.h>
#endif
No estoy seguro si eso es correcto tampoco. Después de esto, todavía no puedo hacer que NSZombie funcione (a menos que haya entendido mal lo que se supone que debe hacer). Espero ver un registro de "NSZombie envió un lanzamiento ..." o algo así. Pero no veo nada
Estoy seguro de que no estoy haciendo esto bien, un buen paso a paso sería apreciado. Gracias
También es de destacar que también he habilitado:
NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES
¿Estás estableciendo la variable de entorno correctamente? La guía paso a paso es
- Haga doble clic en un ejecutable en el grupo Ejecutables de su proyecto Xcode.
- Haga clic en la pestaña Argumentos.
- En la sección "Variables para establecer en el entorno:", cree una variable llamada "NSZombieEnabled" y establezca su valor en "SÍ".
No necesita importar # NSDebug.h
-1 a Apple. Las compilaciones de depuración deberían ejecutarse con la instrumentación completa lista para usar (con opción de exclusión voluntaria). También vea http://www.cocoadev.com/index.pl?NSZombieEnabled para obtener más itms de interés para alguien que está desarrollando y depurando un programa.