Wykorzystanie podstawowej pamięci danych i ostrzeżenie o pamięci

Mam ten problem. Mam bazę danych obrazów w Core Data. Pobieram wszystkie obrazy (około 80 MB) i umieszczam w NSMutableArray. Obiekty są prawidłowo uszkodzone:

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]);
}

Odczytując dziennik, widzę, że wszystkie obiekty są poprawnie uszkodzone. Jednak używając Instrumentów, widzę, że wykorzystywanych jest 80 MB pamięci. Myślę, że właśnie dlatego Core Data buforuje wyniki i powinna zwolnić pamięć, gdy jest to potrzebne. Ale (i to jest mój „problem”), jeśli symuluję ostrzeżenie o pamięci, nic się nie dzieje! 80 MB pozostaje tam.

Patrząc na instrumenty - przydziały, 80 MB jest używane przez wiele Malloc: (przykład)

Wykres Kategoria Żywe bajty # Życie # Przejściowe całkowite bajty # Ogólnie # Alokacje (netto / ogółem) 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

To jest link do obrazu całego drzewa połączeń:https://www.dropbox.com/s/du1b5a5wooif4w7/Call%20Tree.png

Jakieś pomysły? Dzięki

questionAnswers(2)

yourAnswerToTheQuestion