Objective-C: perdita di memoria o meno con assegnazione multipla con autorelease?
-
25-09-2019 - |
Domanda
Se faccio la seguente cosa, questo renderà le perdite di memoria?
SomeClass* tmp;
NSDate* thetmpdate;
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
tmp = [[[SomeClass alloc] init] autorelease];
thetmpdate = [NSDate date];
// Do something long with tmp and date
Soluzione
No, non c'è nessuna perdita nel codice che avete inviato. Tutti gli oggetti saranno autoreleased quando la piscina autorelease viene lavata, non importa se la variabile tenendo i loro puntatori viene modificato o meno.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow