2011-01-14 6 views

Odpowiedz

10

Yes.Once nazywa się, że widok jest również zwolniony z pamięci ...

Jeśli chcesz potwierdzić z dokumentacji firmy Apple ..Tutaj jest link

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

Cheers

+7

Ta odpowiedź nie powinna być "najlepszą odpowiedzią", ponieważ nie jest całkowicie poprawna. To zależy, czy UIView został zatrzymany więcej. Druga odpowiedź jest lepsza w wyjaśnianiu wszystkich szczegółów! –

37

UIView zachowuje swoje subviews, więc po wywołaniu metody -removeFromSuperview obiekt widoku zostanie zwolniony.

Jeśli wszystko jest w porządku z zarządzaniem pamięcią, a widok nie jest przechowywany przez nic innego, to tak - widok powinien zostać zwolniony i usunięty z pamięci.

Ewentualny przykład, gdy zwykłe usunięcie widoku z podglądu może nie być wystarczające do zwolnienia może być widokiem, który ma połączenie wyjściowe i deklarowaną właściwość dla niego z atrybutem zatrzymania - w takim przypadku jest on zachowywany przez kontroler podczas ładowania ze stalówki pliku i może być konieczne, aby zwolnić ten widok dla tego przypadku: metoda removeFromSuperView

[iVarView removeFromSuperview]; 
self.iVarView = nil; 
+3

Dużym Wyjątkiem jest jeśli widok usunięcie jest zarządzana przez drugiego kontrolera widoku, to widok kontroler musi zwolnić pogląd, zanim będzie można go usunąć z pamięci. – PeyloW

+0

@Peylo, tak, to co miałem na myśli w "porządku z zarządzaniem pamięcią", ale nie było to dobre zdanie, wydaje się, że to jest – Vladimir