aviso de memória depois de usar o UIImagePicker uma vez
-
11-09-2019 - |
Pergunta
Eu já referido esta referência muito boa: https://stackoverflow.com/questions / 1282830 / UIImagePickerController-UIImage-memory-e-mais mas eu estou tendo alguns problemas muito graves. Depois que eu tirar uma foto, eu recebi um aviso de memória. Isto é para a primeira foto que eu tomar, não o segundo ou terceiro.
Eu queria saber se é porque eu tenho um par de pequenos jpegs carregados do diretório do aplicativo em vista de rolagem. A única solução que eu posso pensar é para descarregar tudo na minha MAINVIEW enquanto o UIImagePicker está ativa e recarregar tudo de novo depois, mas eu não tenho certeza que é a solução correta e eu não tenho certeza de como fazer isso.
O UIImagePicker usar-se que quantidade de memória? Eu nem sequer chegou até o processamento ou exibir a imagem que leva ainda. Eu recebo um aviso de memória, mesmo se eu jogar a imagem de distância.
Qualquer ajuda apreciado.
Solução
Sim, isso acontece. A coisa a lembrar é que não há problema em receber um aviso de memória, isso não significa que você é uma pessoa ruim, você só precisa ter certeza de que a sua aplicação não falhar ou ficar confuso em resposta ao aviso de memória.
Em particular, você precisa entender que a ação padrão de UIViewController é descarregar seus pontos de vista, se eles não são visíveis, e eles não serão visíveis se o seletor de imagem em tela cheia está mostrando.
Outras dicas
Para todas as pessoas que ainda estão procurando a resposta real e não uma declaração vaga, em seguida, olhe aqui. Notei que existem centenas de respostas como "Lidar com a sua memória", mas que não responde nada. Espero que isso ajude alguém lá fora ...
Alterar o seguinte
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[imageView setImage:image];
[self dismissModalViewControllerAnimated:YES];
}
para o seguinte para seus modais despede vista antes de definir a sua imagem ...
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self dismissModalViewControllerAnimated:YES];
[imageView setImage:image];
}
O mais provável é que você está usando imagens uneditted, e voltam no tamanho soprado cheio de 1400x1300 que é enorme e w doente travar o seu aplicativo, sugiro redimensionar as imagens para a resolução nativa do iPhone 320x480, deve resolver o seu problema