aviso de memória depois de usar o UIImagePicker uma vez

votos
14

Eu já se referiu a este muito boa referência: https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more 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 a quantidade de memória? Eu nem sequer chegou até o processamento ou exibindo a imagem que leva ainda. Eu recebo um aviso de memória, mesmo se eu jogar a imagem de distância.

Qualquer ajuda apreciado.

Publicado 02/12/2009 em 17:33
fonte usuário
Em outras línguas...                            


3 respostas

votos
45

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 seu ponto de vista modal demite antes de definir a sua imagem ...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self dismissModalViewControllerAnimated:YES];
    [imageView setImage:image];
}
Respondeu 05/05/2011 em 21:15
fonte usuário

votos
9

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 a imagem selecionador de tela cheia está mostrando.

Respondeu 02/12/2009 em 18:26
fonte usuário

votos
1

O mais provável é que você está usando imagens uneditted, e voltam no tamanho completo soprado de 1400x1300 que é enorme e w acidente doente a sua aplicação, sugiro redimensionar as imagens para a resolução nativa do iPhone 320x480, deve resolver o seu problema

Respondeu 02/12/2009 em 17:35
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more