Używam ARC. Czy ARC automatycznie zwolni wszystkie właściwości w dealloc
? Czy konieczne jest ręczne ustawienie wszystkich właściwości publicznych i pola prywatnego na nil
? Czy istnieje jakiś dobry wzór do naśladowania?Jakiego rodzaju właściwość należy ustawić na zero w dealloc?
5
A
Odpowiedz
5
Pod ARC wzór jest ... nie rób niczego w dealloc, ani nawet nie implementuj go. ARC dba o twoje właściwości i zmienne instancji.
Jedynym wyjątkiem jest to, że dealloc jest dobrym miejscem do wyrejestrowania się z powiadomień, jeśli obiekt został zarejestrowany.
0
Dobre pytanie. Podczas korzystania z ARC
kompilator zaimplementuje dla ciebie metodę dealloc
i będzie obsługiwać niejawnie uwalnianie zmiennych i właściwości instancji.
Możesz nadal potrzebować niestandardowego - dealloc
, jeśli twoja klasa potrzebuje zrobić coś innego niż zwolnienie pamięci (np. Wyrejestrowanie dla powiadomień takich jak wspomniano jrturton).
Możesz dobrze zrozumieć, co należy wziąć pod uwagę, przechodząc na ARC w oficjalnej wersji Apple notes.
Powiązane problemy
- 1. Słaby właściwość jest ustawiona na zero w dealloc ale ivar miejscu zakwaterowania nie jest zerowa
- 2. Jakiego rodzaju architektura jest nazywana?
- 3. Jakiego rodzaju rozwiązaniem jest thymeleaf?
- 4. Jakiego rodzaju ramek używać w komunikacji szeregowej?
- 5. Dla jakiego rodzaju rozwiązań zaprojektowano Go?
- 6. Moq Weryfikuj bez It - jakiego rodzaju porównać?
- 7. Jakiego rodzaju makro jest brane pod uwagę?
- 8. Jakiego rodzaju odpowiedź json zaczyna się od)]} '
- 9. Jakiego rodzaju problemy mogą rozwiązać problemy map?
- 10. Jakiego rodzaju normalizacji używają porównania łańcuchów Swift?
- 11. Kiedy należy ustawić właściwość "prototype.constructor" klasy w JavaScript?
- 12. Jakiego wyjątku należy zgłaszać w JavaScript?
- 13. Dlaczego musimy ustawić zmienną __block na zero?
- 14. Jakiego rodzaju biblioteki Java OCR powinienem używać w systemie Android?
- 15. Ustawienia IBOlety do zera w dealloc
- 16. Jak ustawić sekundy na zero dla NSDate
- 17. Jakiego rodzaju struktura danych jest używana dla niezmiennych map?
- 18. Jakiego rodzaju wycieki pamięci XCode Analyzer może nie zauważyć?
- 19. Jakiego rodzaju są narzędzia do refaktoryzacji baz danych?
- 20. Jakiego rodzaju struktury danych powinienem używać do przechowywania wierszy tabeli?
- 21. Czy konieczne jest zwolnienie ivar i ustawienie zsyntetyzowanego ivar na zero w tym samym czasie?
- 22. Jak ustawić właściwość ManagedBy na GroupPrincipal
- 23. Obiektyw C iPhone, kiedy ustawić odniesienia do obiektu na zero
- 24. C# dynamicznie ustawić właściwość
- 25. Czy należy ustawić AssemblyConfigurationAttribute?
- 26. Jak ustawić właściwość zasobu?
- 27. iOS 11 EXC_BAD_ACCESS KERN_INVALID_ADDRESS na dealloc
- 28. W Powershell, jakiego rodzaju jest typ danych [string []] i kiedy go użyjesz?
- 29. Czy IDataErrorInfo.Error należy sprawdzić każdą właściwość?
- 30. Jakiego formularza należy użyć do tworzenia strony internetowej?
Niezarejestrowane powiadomienia w dealloc są bardzo ważne, ponieważ tego typu błędy są bardzo trudne do znalezienia. – amb
Jeśli jakiekolwiek objecs mają dowolnych delegatów, delegatów można tutaj również pominąć. 'someObject.delegate = nil;' – GangstaGraham
@GangstaGraham, jeśli obiekty mają słabe odniesienia do swoich delegatów, nie powinieneś tego robić, ale okazało się, że trzeba to zrobić, szczególnie w przypadku widoku przewijania i widoku WWW delegaci, nawet w ramach ARC. – jrturton