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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top