Uso de memória de dados principais e aviso de memória

Eu tenho esse problema. Eu tenho um banco de dados de imagens no Core Data. Eu busco todas as imagens (cerca de 80MB) e coloco em um NSMutableArray. Os objetos estão com falhas corretamente:

NSArray *fetchResults = [self.managedObjectContext executeFetchRequest:request error:&error];
self.cache = [NSMutableArray arrayWithArray:fetchResults];
for (ImageCache *imageObject in self.cache) {
    NSLog(@"Is fault? %i", [imageObject isFault]);
}

Lendo o log, vejo que os objetos estão todos com falhas corretamente. No entanto, usando o Instruments, vejo que são utilizados 80MB de memória. Acho que é por isso que o Core Data armazena em cache os resultados e deve liberar a memória quando necessário. Mas (e este é o meu "problema"), se eu simular um aviso de memória, nada acontece! Os 80MB permanecem lá.

Olhando para instrumentos - alocações, os 80MB são usados ​​por muitos Malloc: (exemplo)

Categoria Gráfica Live Bytes # Vivos # Bytes gerais transitórios # geral # alocações (líquido / geral) 0 Malloc 176,00 KB 8,59 MB 50 57 18,39 MB 107% 0,00,% 0,00 0 Malloc 200,00 KB 8,20 MB 42 460 98,05 MB 502% 0,00,% 0,04 0 Malloc 168,00 KB 7,05 MB 43 19 10,17 MB 62% 0,00,% 0,00

Este é um link para uma imagem de toda a Árvore de Chamadas:https://www.dropbox.com/s/du1b5a5wooif4w7/Call%20Tree.png

Alguma ideia? obrigado

questionAnswers(2)

yourAnswerToTheQuestion