Pregunta simple: ¿necesito liberar o liberar estructuras? Mi razón para preguntar es que estoy usando una Invocación NS y el tipo SEL es una estructura. Solo quiero saber si necesito liberarlo. Gracias.Objetivo C Estructuras y administración de memoria
6
A
Respuesta
14
En Objective-C y C en general, si algo no es un puntero a otro lugar en la memoria y todo se asigna en la pila, no será necesario liberarlo. Se liberará tan pronto como el puntero de la pila se ajuste al final de la función.
2
En lo que respecta a las estructuras C y la gestión de la memoria, Objective-C no es diferente de C: si malloc()
lo, debería free()
(en algún momento).
4
SEL
deben ser tratados como un tipo opaco (es char *
en el tiempo de ejecución de 32 bits) y casi cada uso será una instancia estática (@selector()
) o una variable "temporal" (NSSelectorFromString()
), ninguno de los cuales necesita liberar porque no lo asignaste.
Cuestiones relacionadas
- 1. C Administración de memoria
- 2. Pasar y acceder a las estructuras con el objetivo-c
- 3. Administración de memoria en Forth
- 4. C++ Técnicas/prácticas de administración de memoria
- 5. De administración de memoria, corrupción de montón y C++
- 6. Administración de memoria CFSTR
- 7. administración de memoria java
- 8. Administración de memoria en Perl
- 9. Administración de memoria de Vala
- 10. Administración de memoria UIWebView
- 11. Administración de memoria OSGi
- 12. Administración de la memoria y performSelectorInBackground:
- 13. objetivo-c desasignación de memoria singleton
- 14. Administración de memoria Fortran array
- 15. Alineación de estructuras C++ y vectores STL
- 16. Big Merge/administración de memoria
- 17. Mezcla C y objetivo-C
- 18. Objective-C/iPhone Administración de memoria Variables estáticas
- 19. Estructuras anidadas en C y C++
- 20. Administración de memoria Objective-C: ¿mejores prácticas al devolver objetos?
- 21. ¿Cómo se estructuran las estructuras en la memoria en C++?
- 22. Android - ¿Administración de mapa de bits y memoria?
- 23. C# y VB.NET - Tratamiento de Estructuras nulos
- 24. Administración de memoria/recursos usando MonoTouch y MonoTouch.Dialog
- 25. Objetivo C NSStack y NSQueue?
- 26. Administración de memoria Objective-C, analizador xml y otros ejemplos no triviales
- 27. C# estructuras de datos
- 28. Administración de memoria/montón en las DLL
- 29. Administración de memoria en Objective-C y configuración de punteros en cero
- 30. Espacios de nombre y objetivo C
Ser un 'char *' es un detalle de implementación. Una implementación de Objective-C puede elegir implementarla internamente con un entero simple o cualquier mecanismo que prefiera. –
Es por eso que dije que es un tipo opaco. Usé 'char *' como un ejemplo de cuando no es una estructura. –