ReloadData
chaps31
Membre
Y a-t'il des précautions à prendre avec reloadData ? Parce-que après modif d'un NSTextField par l'utilisateur je modifie la table source de ma tableView et fait un reloadData, sauf qu'à ce stade si l'utilisateur clique sur la tableView BUG, plantage de l'appli (cliquer sur la tableview lance une IBAction mais qui fonctionne sans problème normalement).
En sachant que la modification de la table est bien effective.
A moins que cela vienne de mon RemoveAllObjects qui commence la méthode de remplissage de la table source ? Mais j'en doute.
Merci de me dire si vous voyez une énorme maladresse
En sachant que la modification de la table est bien effective.
A moins que cela vienne de mon RemoveAllObjects qui commence la méthode de remplissage de la table source ? Mais j'en doute.
Merci de me dire si vous voyez une énorme maladresse
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La pile c'est pas la fenêtre du bas... C'est la succession d'appels jusqu'au crash (en haut à gauche).
removeAllObjects envoie un release à chaque élément de la NSArray.
Si ces éléments sont à un retain count de 1, ils sont désalloués, d'où un crash si on essaie de les réutiliser.
-(void) dealloc{
NSLog(@Deallocing %@",self);
....
[super dealloc];
}
tu verras peut-être disparaà®tre un objet que tu crois alloué
Désolé de mon niveau en POO :-\\
"dealloc" n'est JAMAIS appelé explicitement.
La classe dont ta classe hérite implémente déjà une méthode dealloc.
Pour que tout soit nettoyé, il faut l'appeler pour désallouer les variables non déclarées dans ta sous-classe, mais existant peut-être en tant que classe fille.
Le mot clé super fait que c'est la méthode de la classe parent qui est appelée.
http://www.stepwise.com/Articles/Technical/HoldMe.html
http://www.stepwise.com/Articles/Technical/2001-03-11.01.html