2009-08-19 8 views

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.

+0

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. –

+1

Es por eso que dije que es un tipo opaco. Usé 'char *' como un ejemplo de cuando no es una estructura. –

Cuestiones relacionadas