Sono nuovo nello sviluppo di iphone. Sto usando ARC per il mio progetto. Per quanto ho capito usando ARC non è necessario rilasciare alcun oggetto manualmente. Ma, ho osservato in alcuni punti, le persone impostano esplicitamente il loro oggetto a zero nel ViewDidUnload anche dopo aver usato ARC.Proprietà deboli e forti in -viewDidUnload in ARC
Ad esempio, nel file h ho qualcosa di simile a questo:
@property (unsafe_unretained, nonatomic) IBOutlet MKMapView *mapViewOutlet;
@property (unsafe_unretained, nonatomic) IBOutlet UIToolbar *toolBar;
@property (strong,nonatomic) NSMutableArray *dataArray;
E .m come segue:
- (void)viewDidUnload
{
[self setMapViewOutlet:nil];
[self setToolBar:nil];
[super viewDidUnload];
self.dataArray=nil;
}
La mia domanda è, è davvero necessario specificare esplicitamente zero nel ViewDidUnload anche sotto ARC?
Ma, anche se non impostato su zero, il sistema libererà automaticamente la memoria in ARC, giusto? – Raj
Alla fine, sì. È difficile (er) creare una perdita sotto ARC. Spetta a te decidere se puoi aiutare il sistema liberando alcuni grossi pezzi di memoria quando la tua app riceve l'avviso di memoria. – zoul
Ok. Accetterò questa risposta – Raj