He notado una pequeña confusión cuando veo varios trozos de código tanto en libros como en la web cuando se trata de implementar dealloc. Mi pregunta es cuando uso @property. ¿Cuál de los siguientes debería estar usando? Hasta ahora he estado usando VERSION_001.dealloc, ¿usar lanzamiento o establecer en cero para las propiedades?
@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *type;
@property(nonatomic, retain) NSString *payload;
@property(nonatomic, retain) NSString *orbit;
VERSIÓN 001
- (void)dealloc {
[name release];
[type release];
[payload release];
[orbit release];
[super dealloc];
}
VERSIÓN 002
- (void)dealloc {
[self setName:nil];
[self setType:nil];
[self setPayload:nil];
[self setOrbit:nil];
[super dealloc];
}
Gracias, justo lo que buscaba, muy apreciado. – fuzzygoat
No hay problema, en cualquier momento, simplemente no se olvide de aceptar la respuesta :) –
Una gran ventaja que la versión 1 tiene sobre la versión 2 es que si algún día modifica el setter para una de estas propiedades para hacer un trabajo no trivial, no incurrirá en el rendimiento o el posible comportamiento incorrecto en la versión 1. La versión 2 podría fácilmente provocar que introduzca errores en su código sin darse cuenta algún día en el futuro. – Ryan