A memória suja do ImageIO não é apagada automaticamente pelo iOS

Eu estou criando um aplicativo que é um tipo de galeria - mostra conteúdo de mídia diferente como um visualizador de tela cheia. O instrumento Allocations mostra que o parâmetro Live Bytes não aumenta mais do que 40 Mb ao usar o aplicativo. Enquanto isso, o aplicativo está 100% sendo morto depois que eu deslizei as páginas de 20 a 30 vezes. Eu verifiquei o parâmetro Dirty Memory e descobri que ele era 10 vezes maior que o tamanho do Live Bytes. E a maior parte dessa memória suja consumiu o IO da imagem:

Screenshot http://i40.tinypic.com/25ge51i.jpg

EDIT, outra imagem:

Screenshot http://i40.tinypic.com/9t1mh5.png

Os picos de alocação acima estão mudando o conteúdo da mídia de vídeo / imagem. O problema é que a memória suja cresce quase linearmente e eu preciso liberá-la de alguma forma.

Agora sobre o design do aplicativo. Tela de aplicativo tem uma exibição de rolagem horizontal. A visualização de rolagem contém vídeos ou objetos de colagem que contêm várias imagens. Para economizar memória, apenas três páginas são criadas por vez - página atual e páginas à esquerda / direita. Assim, as páginas sempre criadas e removidas on-fly ao deslizar a visualização de rolagem.

Todas as imagens que eu carrego usando[UIImage imageWithContentOfFile: path] método. O objeto Collage armazena as instâncias do UIImage dentro do imagesArray. No método dealloc, o atributo imagesArray está desmarcado.

Então, perguntas:

É um tipo de bug no sistema[UIImage imageWithContentOfFile?]É o cache do IO da imagem?Posso limpar isso?

questionAnswers(2)

yourAnswerToTheQuestion