Mam krótkie pytanie dotyczące ARC w iOS. (Przepraszam, że zadawałem tak wiele pytań tego typu, ale jestem po prostu zakłopotany, jeśli chodzi o zarządzanie pamięcią). Ważne jest, aby pamiętać, że nigdy nie używałem starego systemu konserwacji pamięci (retain
, release
, assign
... itd.), Więc nie wiem, co oznaczają te terminy.Kiedy silne właściwości zostaną wydane w ARC w systemie iOS?
W tej chwili jestem zdezorientowany, jeśli chodzi o to, co muszę zrobić, aby upewnić się, że silne właściwości zostaną poprawnie zwolnione. Załóżmy na przykład, że robię aplikację szkolną, a mój obiekt School
zawiera silne odwołania do właściwości do 5 różnych obiektów Child
(nie w tablicy). Każdy obiekt Child
ma silny wskaźnik (właściwość) do obiektu Book
.
Jeśli usuniemy jeden z obiektów Child
z mojej szkoły (powiedzmy, wprowadzając właściwość = nil lub zmieniając moją właściwość, aby wskazywać na nowy obiekt), czy jego Book
zostanie poprawnie zwolniony? Co muszę zrobić, aby upewnić się, że tak właśnie jest? Czy muszę napisać self.myBook = nil
w metodzie dealloc
? Co jeśli Child
był kontrolerem widoku, czy musiałbym napisać self.myBook = nil
w metodzie viewDidUnload?
Jestem ukierunkowany tylko na iOS 5 (i wyżej), więc stary sposób zarządzania pamięcią nie ma dla mnie większego znaczenia.
Sugeruję przeczytanie tego: http://clang.llvm.org/docs/AutomaticReferenceCounting.html –
Dzięki za sugestię. Przyjrzę się temu. – Nosrettap