iphone - objective - xcode




¿Debo liberar recursos xib? (6)

Cualquier IBOutlet que sea una subvista de la vista principal de su Nib no necesita ser liberado, ya que se les enviará el mensaje de liberación automática al momento de la creación del objeto. Los únicos IBOutlet que necesita liberar en su dealloc son objetos de nivel superior como controladores u otros NSObject. Todo esto se menciona en el documento de Apple vinculado anteriormente.

Si tengo algo así como un UILabel vinculado a un archivo xib, ¿necesito liberarlo en dealloc de mi vista? La razón por la que pregunto es porque no la asigno, ¿qué me hace pensar que tampoco necesito liberarla? por ejemplo, (en el encabezado):

IBOutlet UILabel *lblExample;

en la implementación:

....
[lblExample setText:@"whatever"];
....

-(void)dealloc{
    [lblExample release];//?????????
}


los

[anOutlet release], anOutlet = nil;

Parte es completamente superfluo si has escrito setView: correctamente.



Si no establece IBOutlet como una propiedad, sino simplemente como una variable de instancia, aún debe liberarla. Esto se debe a que en initWithNib, la memoria se asignará para todos los IBOutlets. Este es uno de los casos especiales que debe liberar aunque no haya retenido ni haya asignado memoria en el código.








cocoa-touch