Soy nuevo en el desarrollo de iphone. Estoy usando ARC para mi proyecto. Por lo que entendí al usar ARC, no tenemos que liberar ningún objeto manualmente. Pero, he observado en algunos lugares, las personas establecen explícitamente su objeto a cero en ViewDidUnload, incluso después de usar ARC.Propiedades débiles y fuertes en -viewDidUnload bajo ARC
Por ejemplo, en el archivo .h que tienen algo como esto:
@property (unsafe_unretained, nonatomic) IBOutlet MKMapView *mapViewOutlet;
@property (unsafe_unretained, nonatomic) IBOutlet UIToolbar *toolBar;
@property (strong,nonatomic) NSMutableArray *dataArray;
Y .m de la siguiente manera:
- (void)viewDidUnload
{
[self setMapViewOutlet:nil];
[self setToolBar:nil];
[super viewDidUnload];
self.dataArray=nil;
}
Mi pregunta es, ¿es realmente necesario especificar explícitamente nula en ViewDidUnload incluso bajo ARC?
Pero, incluso si no configuro nada, el sistema liberará la memoria automáticamente en ARC ¿verdad? – Raj
Eventualmente, sí. Es difícil (er) crear una fuga bajo ARC. Depende de usted decidir si puede ayudar al sistema liberando una gran cantidad de memoria cuando su aplicación recibe la advertencia de memoria. – zoul
Ok. Aceptaré esta respuesta. – Raj