Proste pytanie - czy muszę zwolnić lub zwolnić strukturę. Mój powód dla pytania jest, że używam NSInvocation i typ SEL jest struct. Chcę tylko wiedzieć, czy muszę go zwolnić. Dzięki.Objective C Structs and Memory Management
6
A
Odpowiedz
14
W Objective-C i C ogólnie, jeśli coś nie jest wskaźnikiem do innego miejsca w pamięci, a cała rzecz jest przydzielana na stosie, nie będzie potrzeby jej uwalniania. Zostanie zwolniony, gdy tylko wskaźnik stosu zostanie ustawiony na końcu funkcji.
2
Jeśli chodzi o struktury C i zarządzanie pamięcią, Objective-C nie różni się od C: jeśli masz malloc()
, to powinieneś to zrobić w pewnym momencie (free()
).
4
SEL
powinny być traktowane jako rodzaj nieprzezroczystego (to char *
na 32-bitowym środowisku wykonawczym) i prawie każdym użyciu będzie statyczna instancja (@selector()
) lub „tymczasowy” zmienna (NSSelectorFromString()
), z których żaden nie potrzebuje uwolnienia, ponieważ nie przydzieliłeś tego.
Powiązane problemy
- 1. c structs and byte setting/ordering
- 2. Memory Management: NSString za stringWithCString: kodowanie:
- 3. Lisp, cffi, let and memory
- 4. Wynik "sizeof" na tablicy structs w C?
- 5. Co to jest boost :: variant memory and performance cost?
- 6. C# Project Management with Maven
- 7. C# WinForms User/Permission management
- 8. ACL Check/Management w C#
- 9. Zarządzanie zmiennymi systemowymi Objective-C/iPhone
- 10. Używam C++ 14 lub jest mój kod, używając structs, invalid?
- 11. Objective-C - sprawdź blok?
- 12. Jak wyświetlić obraz na pasku narzędzi za pomocą Objective-C
- 13. C# generics and collection
- 14. Pytania dotyczące Scala od programisty C++ (structs i stl)
- 15. Jak korzystać z DLLImport z structs jako parametry w C#?
- 16. Wiele inicjalizatorów Objective-C
- 17. Mieszanie C++ i Objective C
- 18. Objective C wersja explode()?
- 19. Threading w Objective-C
- 20. metoda Objective C nazewnictwo
- 21. biginteger on Objective-c
- 22. ?: w Objective C
- 23. Objective-C Integer arithmetic
- 24. Objective-C Property Access
- 25. XOR Objective-c
- 26. Normy kodowania Objective-C?
- 27. typ klasy Objective C
- 28. BDD w Objective-C
- 29. Objective-C Charting Framework
- 30. Caret in objective C
Bycie "char *" jest szczegółem implementacji. Implementacja Objective-C może wewnętrznie zaimplementować ją za pomocą prostej liczby całkowitej lub dowolnego mechanizmu, który preferuje. –
Dlatego powiedziałem, że to rodzaj nieprzezroczysty. Użyłem "char *" jako przykładu, kiedy nie jest to struktura. –