2013-12-11 14 views
7

Próbuję znaleźć źródło wycieku pamięci, jak opisano tutaj:Dane rastrowe CG - CGProviderCreateWithCopyOfData - Nie można wydać?

Unable to Release Quartz 2D and Core Text created Images

Kiedy stosować instrumenty widzę, że istnieje coś, co nazywa CG Raster danych stale rośnie w rozmiarze, który nigdy nie zostanie zwolniony.

Czy ktoś wie, co może być przyczyną tego i jak rozwiązać? Wygląda na to, że może to być buforowanie obrazu, ale czy można go opróżnić z kodu?

+0

Czy pamięć zostanie zwolniona po zamknięciu tego ekranu? Jeśli tak, to musisz dodać @autoreleasepool wokół kodu, który używa obrazów (może to być pętla). –

+0

Czy możesz dołączyć swój kod? –

Odpowiedz

0

Miałem ten sam problem z zwiększaniem pamięci CG Raster Data przez zwykłe pchanie i wielokrotne popychanie kontrolera widoku. Spędziłem chwilę myśląc, że to problem z jakimś rysunkiem. W końcu wyśledziłem to do delegata, który nie słabo odwoływał się do kontrolera podglądu, który był pchany i pstrykany, więc kiedy zdjąłem kontroler widoku, nie został on zwolniony. CG Raster Data okazało się największą częścią śladu kontrolera podglądu, więc błędnie przypisałem ten problem temu początkowo, kiedy to naprawdę sam kontroler widoku nie został zwolniony (dlatego nie zwalniając swoich poglądów, niektóre z nich który miał CG Raster Data).

W skrócie: jeśli widzisz wycieki pamięci za pomocą danych rastrowych CG, sprawdź kontrolery widoku, które mogą mieć widoki z nimi i upewnij się, że są one zwolnione.

Powiązane problemy