Eu tenho um problema de gestão de memória aqui?
-
19-09-2019 - |
Pergunta
Algo deve estar errado com este código aqui:
+ (UIImage*)captureView:(UIView *)theView {
UIGraphicsBeginImageContext(theView.frame.size);
[theView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Quando eu usar isso, Xcode me joga esta mensagem de erro:
malloc: * Erro de objeto 0x103f000: ponteiro de ser libertado foi não alocado * conjunto um ponto de interrupção no malloc_error_break a depuração
Eu não consigo ver quaisquer erros de gerenciamento de memória lá. Alguém mais?
Solução
Eu tive o mesmo aviso. Mas, ela não ocorre em 3,1 ou acima.
Outras dicas
Você não achou. Definir NSZombie
habilitado na compilação para rastreá-lo.
Pode estar relacionado com retornando um UIImage autoreleased a partir de um método de classe que provavelmente será dentro de um pool de disparo automático temporário. A imagem pode estar sendo destruído pela drenagem do que piscina. Para teste, mover o método para um método de instância e ver se o problema desaparece.