2010-10-19 5 views
0

Iam ayant un doute très basique sur la gestion de la mémoire. Si supposer iam allouer de la mémoire pour un objet dans la méthode viewWillAppear. Dois-je libérer l'objet dans la méthode viewWillDisappear ou dans la version tous les objetsGestion de la mémoire dans l'objectif c

Répondre

0

Voici un tutoriel très facile à apprendre sur la gestion de la mémoire d'objectif-c.

http://cocoadevcentral.com/d/learn_objectivec/

Vous apprendrez beaucoup sur la conservation et la libération des variables. En général, les variables sont définies en fonction de la portée (c'est-à-dire où elles seront utilisées). Par exemple, vous pouvez vouloir initialiser une variable utilisée dans une classe dans viewDidLoad et la libérer dans dealloc. Tout dépend de l'endroit où vous avez besoin de stocker des données et pour combien de temps.

+0

Merci beaucoup pour le lien du tutoriel. Il a effacé beaucoup de ma confusion concernant la gestion de la mémoire. – Swapna

1

Cela dépend de quand vous voulez libérer l'objet. Vous n'êtes pas obligé de sortir sur viewWillDisappear. Mais, vous pouvez, pensez juste quand vous en avez besoin et quand vous ne le faites pas. Techniquement, l'un ou l'autre va bien. En fonction de la situation, je pense: si vous avez besoin de l'objet pour plusieurs vues ne pas dealloc dans viewWillDisappear, si vous en avez besoin seulement pour cette vue et que vous n'en avez plus besoin, dealloc dans viewWillDisappear.

+1

Si vous choisissez de créer des objets dans viewWillAppear, assurez-vous toujours qu'ils n'existent pas encore en comparant les pointeurs à zéro. Chaque fois que vous les relâchez, définissez les pointeurs sur zéro. Vous devez être préparé pour que viewWillAppear soit envoyé plusieurs fois. – Costique