Da qualche parte in un progetto ARC, ho:
//Class1.h
@interface Class1 {
NSDictionary * dict;
}
@fine
//Class1.m
@implementation Class1
-(void)loadDict {
NSDictionary * dict = [[NSDictionary alloc] init];
// Now load couple of (NSString *, NSString *) pairs into the dictionary
...
}
-(void)releaseAllMemoryUsedByDict {
//TODO
}
@end
Come posso liberare tutta la memoria occupata da dict,su richiesta? Suppongo che se avessi un NSMutableDictionary, potrei chiamare il suo metodo removeAllObjects. Come lo farei per NSDictionary? L'impostazione dict = NULL funzionerebbe?
risposte:
4 per risposta № 1Impostandolo a nil
funzionerà, presupponendo che nessun altro oggetto sia trattenuto da (has forte riferimento a) il NSDictionary
.
4 per risposta № 2
Se imposti il NSDictionary
a nil
, o qualsiasi oggetto, sarà rilasciato, assumendo che nessun altro oggetto abbia un riferimento ad esso (questo su un ambiente ARC).