UIImagePickerController Vazamento de memória
Estou vendo um grande vazamento de memória ao usarUIImagePickerController
no meu aplicativo para iPhone. Estou usando o código padrão dos documentos da apple para implementar o controle:
UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
switch (buttonIndex) {
case 0:
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:imagePickerController animated:YES];
break;
case 1:
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:imagePickerController animated:YES];
break;
default:
break;
}
}
E para o cancelamento:
-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[[picker parentViewController] dismissModalViewControllerAnimated: YES];
[picker release];
}
retorno de chamada didFinishPickingMediaWithInfo é igualmente padrão, embora eu nem precise escolher nada para causar o vazament
Aqui está o que vejo nos instrumentos quando tudo o que faço é abrir oUIImagePickerController
, escolha a biblioteca de fotos e pressione cancelar várias vezes. Como você pode ver, a memória continua crescendo e, eventualmente, isso faz com que meu aplicativo para iPhone desacelere tremendamente.
Como você pode ver, eu abri o seletor de imagens 24 vezes e cada vez que ele atingiu 128kb, que nunca foi lançado. Basicamente, 3mb do meu total de 6mb nunca são liberados.
Esta memória permanece vazada, não importa o que eu faça. Mesmo depois de navegar para longe do controlador atual, permanece o mesmo. Também implementei o controle selecionador como um singleton com os mesmos resultado
Aqui está o que vejo quando me aprofundar nessas duas linhas:
Qualquer ajuda aqui seria muito apreciada! Novamente, nem preciso escolher uma imagem. Tudo o que faço é apresentar o controlador e pressionar cancelar.
Update 1Fiz o download e executei o exemplo da Apple de usar oUIIMagePickerController
e vejo o mesmo vazamento lá ao executar instrumentos (tanto no simulador quanto no telefone
Tudo o que você precisa fazer é pressionar o botão da biblioteca de fotos e pressionar cancelar repetidamente, e a memória continuará crescend
Alguma ideia
Update 2Só vejo esse problema ao visualizar a biblioteca de fotos. Posso escolher tirar uma foto e abrir e fechar essa sem para