2009-11-02 11 views

Respuesta

22
  • retain aumentar el recuento de referencia en un objeto
  • release disminuye la referencia en un objeto
  • drain se utiliza en lugar de la liberación en SOLAMENTE para NSAutoreleasePool objetos debido a alguna arcana relacionadas con el objetivo C La recolección de basura
  • dealloc es invocada por el sistema una vez que el valor de retención de un objeto llega a 0. Aquí es donde usted limpia varias cosas que tiene su objeto (como un deconstructor o finalizador). Debe llamar al NUNCA directamente, excepto para llamar al [super dealloc] al final de sus rutinas dealloc.

Realmente debe leer a través de la gestión de memoria de Apple documentation.

+0

muchas gracias ... – suse

+0

-drain es útil en NSAutoreleasePool para que también funcione bajo GC. A saber, desencadena una colección de inmediato. Si utilizamos -release, entonces bajo GC, ese mensaje sería ignorado, y no pasaría nada. – kperryua

+0

+1 por esta gran respuesta – swiftBoy