J'ai vu un exemple de code source qui utilise différentes façons de libérer/libérer des objets, alors je me demandais quelle est la meilleure façon de le faire. Quelques options -dealloc
:Meilleure pratique pour nettoyer la mémoire des applications iPhone?
1) Les objets de presse
- (void)dealloc {
[obj1 release];
[obj2 release];
[super dealloc];
}
2) objets Set à zéro
- (void)dealloc {
self.obj1 = nil;
self.obj2 = nil;
[super dealloc];
}
3) désallouer objets directement
- (void)dealloc {
[obj1 dealloc];
[obj2 dealloc];
[super dealloc];
}
Quel chemin est le meilleur? Avantages et inconvénients pour chacun?
D'accord. La méthode 1 est la meilleure. La méthode 3 est à peu près garantie de planter votre application. Et la méthode 2, comme l'a dit Marco, peut causer des effets secondaires involontaires. Le but de la méthode dealloc est de libérer tous les objets que vous détenez. Appeler la libération sur ces objets est la seule chose qui a du sens. – Alex
J'utilise la méthode 2 chaque fois que j'utilise une propriété lourde et que je cible l'exécution moderne (où je ne déclare même pas d'ivars directement). Certes, c'est seulement parce que gcc ne vous permet pas encore d'accéder directement aux ivars autogénérés (bien que cela arrive). –