2012-11-08 5 views
0

J'ai un doute sur la façon dont nous allons publier les variables d'instance correctement. Je sais que nous pouvons faire la version dans la méthode dealloc. Si nous sommes donnés comme self.instancevariouble=nil dans la viewdidunload va également libérer l'objet. Ma question est: S'il y a un problème si on nous donne un objet nul dans la méthode unload, puis relâchez-le dans la méthode dealloc. Aussi, comment ai-je besoin de publier une tableview qui est ajoutée en tant que IBoutlet dans le xib.Can quelqu'un peut-il me pointer dans la bonne direction?Comment libérer des variables d'instance?

Répondre

2

Il n'y a pas de problème avec l'appel release sur un objet nul mais, comme une meilleure stratégie, passer à l'ARC et la plupart des ces préoccupations vont tout simplement disparaître. (Notez également que iOS 6 ne décharge pas vues.)

0

Si vous tentez de libérer un objet nul cela fonctionnera. Vous pouvez envoyer un message à un objet nul sans l'accident d'application;) de sorte que vous pouvez le faire:

UILabel *lbl = nil; 
[lbl release]; 

Il ne fera rien. Et à propos de "Comment puis-je libérer une tableview qui est ajouté en tant que IBoutlet dans le xib.Can quelqu'un peut me pointer dans la bonne direction?" Vous devez « connecter » votre UITableView dans le fichier xib avec votre code et faites:

[myTableView release]; 
0

Si vous utilisez self.instanceVariable = nil dans la méthode viewDidUnload (qui, par la voie ne plus s'appeler dans iOS 6) la valeur est bien sûr nil. Donc, si vous relâchez cela dans la méthode dealloc, vous appelez essentiellement [nil release]; et cela ne fait rien.

Questions connexes