¿Cómo configuro NSZombieEnabled
y CFZombieLevel
para mi ejecutable en Xcode 4?
objective-c
xcode
xcode4
nszombie
Chetan
fuente
fuente
Respuestas:
En Xcode 4.x presione
⌥⌘R
(o clic
Menubar
>Product
>Scheme
>Edit Scheme
)seleccione la pestaña "Diagnóstico" y haga clic en "Habilitar objetos zombis":
Esto convierte los objetos liberados en instancias de NSZombie que imprimen advertencias de la consola cuando se usan nuevamente. Esta es una ayuda de depuración que aumenta el uso de memoria (no se libera realmente ningún objeto) pero mejora la notificación de errores.
Un caso típico es cuando liberas un objeto en exceso y no sabes cuál:
-[UITableView release]: message sent to deallocated instance
Esta configuración de Xcode se ignora cuando archiva la aplicación para enviarla a la App Store. No necesita tocar nada antes de lanzar su aplicación.
Presionar ⌥⌘Res lo mismo que seleccionar Producto> Ejecutar mientras se mantiene Altpresionada la tecla.
Hacer clic en la casilla de verificación "Habilitar objetos zombis" es lo mismo que agregar manualmente "NSZombieEnabled = YES" en la sección "Variables de entorno" de la pestaña Argumentos.
fuente
CMD-<
(CMD-SHIFT-comma
), oProduct -> Scheme -> Edit SCheme...
La respuesta de Jano es la forma más fácil de encontrarlo ... otra forma sería hacer clic en la barra desplegable del esquema -> editar esquema -> pestaña de argumentos y luego agregar NSZombieEnabled en la columna Variables de entorno y SÍ en la columna de valor ...
fuente
Encuentro esta alternativa más conveniente:
Profile
Zombies
Tan pronto como se detecta un zombie, obtienes una "Pila de zombis" ordenada que te muestra cuándo se asignó el objeto en cuestión y dónde se retuvo o se liberó:
Ventajas en comparación con el uso de la pestaña de diagnóstico de los esquemas de Xcode :
Si olvida desmarcar la opción en la pestaña de diagnóstico, no se liberarán objetos de la memoria.
Obtiene una pila más detallada que le muestra en qué métodos se asignó / liberó o retuvo su objeto corrupto.
fuente
iOS Simulator > All
de la lista de plantillas principales (solo puede hacer esto en el simulador)En Xcode 4.2
fuente
Encendido En Xcode 7
⌘<
o seleccione
Edit Scheme
desdeProduct
>Scheme
Menúseleccione
Enable Zombie Objects
formar laDiagnostics
pestañaComo alternativa, si prefiere
.xcconfig
archivos, puede leer este artículo https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/fuente
Cocoa ofrece una característica genial que mejora enormemente sus capacidades para depurar tales situaciones. Es una variable de entorno que se llama NSZombieEnabled, vea este video que explica cómo configurar NSZombieEnabled en el objetivo-C
fuente
En Xcode> 4.3:
Hace clic en la barra desplegable del esquema -> editar esquema -> pestaña argumentos y luego agrega NSZombieEnabled en la columna Variables de entorno y SÍ en la columna de valor.
Buena suerte !!!
fuente