Iphone:-[liberação CFString]:mensagem enviada para instância desalocada
Pergunta
um aplicativo em que estou trabalhando continua travando quando executado no iPhone, mas não no Simulador (embora um aviso seja mostrado quando executado sem malloc_error_break simbólico, mas o aplicativo continua funcionando no Sim)
Não estou liberando nenhuma string manualmente; em vez disso, uso:
[[[NSString / NSMutableString alloc] init] autorelease];
(o que faço o tempo todo para outros aplicativos e nunca me deu problemas)
Agora, quando defino malloc_error_break como ponto de interrupção, recebo:
2012-03-07 17:04:06.072 columns[15487:f803] *** -[CFString release]: message sent to deallocated instance 0x68c8210
Com o XCODE4 saltando para:
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); >>> Thread 1
[pool release];
return retVal;
}
Eu também tenho NSZombieEnabled quando executado no simulador, aliás
Se alguém puder me ajudar sobre como depurar isso no XCODE 4 ou me indicar um tutorial online, ficaria muito grato!
Cumprimentos
Davi
Solução
Remova o autorelease dos seus métodos NSString e adicione-os novamente até travar (acho que esta é a resposta agora, então...)