2010-02-17 7 views
1

J'ai coutume TableViewCell-s où j'attribue plusieurs UIImageView-s et UILabel-s à la contentView de la cellule, comme ceci:iPhone: Dois-je (et comment) publier les sous-vues d'une cellule de vue de table personnalisée?

[cell.contentView addSubview:iconFileView]; 
[iconFileView release]; 
[cell.contentView addSubview:areaLabel]; 
[areaLabel release]; 
[cell.contentView addSubview:placeLabel]; 
[placeLabel release]; 

Comme je comprends les cellules elles-mêmes sont conservés par le TableView et sortira avec lui. Cependant, je ne comprends pas dois-je supprimer les sous-vues de la vue de contenu de la cellule de la vue de contenu pour qu'elles soient publiées?

Si la réponse est oui: comment puis-je réellement faire cela? Est-il suffisant de trouver toutes les cellules visibles et d'enlever leurs sous-vues de chaque cellule?

Aucun d'entre eux n'a trouvé de réponse exacte à cette question dans le Guide de gestion de la mémoire pour Cocoa.

Merci!

Répondre

2

ContentView se chargera de libérer ses sous-vues lorsque la cellule publiera contentView. Fondamentalement, lorsque le nombre de cellules retenues est nul, il envoie un message de libération à contentView. Si le nombre de retain de contentView est nul, alors il enverra des messages de release à toutes ses sous-vues, y compris iconFileView, etc. Tant que vous n'avez envoyé aucun message de conservation supplémentaire à contentView ou iconFileView, etc., ça devrait aller.

Si vous voulez vous sentir vraiment bien, lancez votre programme sous Fuites dans les instruments. Assurez-vous de faire tout ce qui doit être fait pour que les UITableViewCells soient libérées.

Questions connexes