2010-10-26 11 views
1

Pas tout à fait sûr de savoir comment la phrase, mais dois-je libérer une variable dans cette situtation:Dois-je libérer un pointeur qui pointe vers un élément dans un tableau?

NSString *string = @"HELLO WORLD"; 
NSArray *array = [NSArray arrayWithObject:string]; 
NSString *shouldIReleaseThis = [array objectAtIndex:0]; 
NSLog(@"%@", shouldIReleaseThis); 
//???? [shouldIReleaseThis release] ?????? 

//Do stuff with array 

Dois-je libérer? Pourquoi ou pourquoi pas?

Répondre

4

Vous ne possédez pas (vous n'avez pas cette référence de new, alloc, retain ou copy), de sorte que vous ne devriez pas le libérer. Voir le memory management programming guide d'Apple pour un aperçu bref mais complet des règles de gestion de la mémoire dans Cocoa.

+0

Merci, c'est exactement ce que je cherchais. J'avais lu à propos de la gestion de la mémoire, mais d'une manière ou d'une autre le concept de "propriété" n'était pas vraiment entré. – rob

+0

Ceci est une très bonne réponse qui s'applique à toutes les libérations de variables dans Cocoa. +1! – Chetan

Questions connexes