Como configuro NSZombieEnabled
e CFZombieLevel
para o meu executável no Xcode 4?
objective-c
xcode
xcode4
nszombie
Chetan
fonte
fonte
Respostas:
No Xcode 4.x, pressione
⌥⌘R
(ou clique em
Menubar
>Product
>Scheme
>Edit Scheme
)selecione a guia "Diagnóstico" e clique em "Ativar objetos zumbis":
Isso transforma objetos liberados em instâncias do NSZombie que imprimem avisos do console quando usados novamente. Este é um auxiliar de depuração que aumenta o uso da memória (nenhum objeto é realmente lançado), mas melhora o relatório de erros.
Um caso típico é quando você libera um objeto em excesso e não sabe qual:
-[UITableView release]: message sent to deallocated instance
Essa configuração do Xcode é ignorada quando você arquiva o aplicativo para envio da App Store. Você não precisa tocar em nada antes de liberar seu aplicativo.
Pressionar ⌥⌘Ré o mesmo que selecionar Produto> Executar enquanto mantém a Alttecla pressionada.
Clicar na caixa de seleção "Ativar objetos zumbis" é o mesmo que adicionar manualmente "NSZombieEnabled = YES" na seção "Variáveis de ambiente" da guia Argumentos.
fonte
CMD-<
(CMD-SHIFT-comma
), ouProduct -> Scheme -> Edit SCheme...
A resposta de Jano é a maneira mais fácil de encontrá-lo. Outra maneira seria se você clicar na barra suspensa do esquema -> editar esquema -> guia argumentos e depois adicionar NSZombieEnabled na coluna Variáveis de ambiente e YES na coluna Valor ...
fonte
Acho essa alternativa mais conveniente:
Profile
Zombies
Assim que um zumbi é detectado, você recebe uma "Pilha de zumbis" que mostra quando o objeto em questão foi alocado e onde foi retido ou liberado:
Vantagens em comparação ao uso da guia de diagnóstico dos esquemas Xcode :
Se você esquecer de desmarcar a opção na guia Diagnóstico, nenhum objeto será liberado da memória.
Você obtém uma pilha mais detalhada que mostra em quais métodos seu objeto corrompido foi alocado / liberado ou retido.
fonte
iOS Simulator > All
a partir da lista de modelos principal (Você só pode fazer isso no simulador)No Xcode 4.2
fonte
Ativado no Xcode 7
⌘<
ou selecione
Edit Scheme
emProduct
>Scheme
Menuselecione
Enable Zombie Objects
aDiagnostics
abaComo alternativa, se você preferir
.xcconfig
arquivos, pode ler este artigo https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/fonte
O cacau oferece um recurso interessante que aprimora muito seus recursos para depurar essas situações. É uma variável de ambiente chamada NSZombieEnabled, assista a este vídeo que explica a configuração do NSZombieEnabled no objetivo-C
fonte
No Xcode> 4.3:
Você clica na barra suspensa do esquema -> editar esquema -> guia argumentos e adiciona NSZombieEnabled na coluna Variáveis de ambiente e YES na coluna Valor.
Boa sorte !!!
fonte