J'ai donc un UITableView dans lequel je fais des batch insert/delete/recharges. De temps en temps, les données de la liste changent, donc je met à jour les différences dans la liste. J'insère essentiellement de nouvelles lignes, supprimant des lignes qui ne sont plus là, et rechargement de lignes qui existent à la fois dans l'ancienne et la nouvelle donnée. Par exemple:Insertion par lots et suppression + Rechargement de vieilles cellules = Exception
Avant, les données de la liste ressemble à ceci:
0: pomme
1: banane
2: carotte
Après, les données de la liste ressemble à ceci:
0: banane
1: carotte
2: chien
3: éléphant
Cela se traduit par la suppression de la ligne 0, les lignes 1 de rechargement et 2, et l'insertion aux lignes 2 et 3. L'ordre que j'appelle les méthodes est également de cette façon: supprimer, puis recharger, puis insérer des lignes. Cependant, cela génère une exception puisque je fais deux animations différentes sur la ligne 2 (rechargement et insertion). Est-ce un problème de commande, ou mes indexPaths sont-ils incorrects? Remarque: Je dois recharger les anciennes cellules, car les données de cette ligne peuvent avoir changé, mais ne doivent pas être représentées par une insertion/suppression.
Editer: Bizarrement, cette erreur se produit uniquement dans les versions iOS antérieures à iOS4.
Apple propose un excellent didacticiel vidéo qui couvre certains de ces aspects dans le cadre des vidéos de la WWDC 2010. Il s'intitule «Mastering Table Views» ou quelque chose de similaire http://developer.apple.com/videos/wwdc/2010/. .their leur méthode l'explique bien et utilise des animations sympas (mais faciles) aussi – iwasrobbed
WWDC 2011: [UITableView Changes, Tips & Tricks] (https://developer.apple.com/videos/play/wwdc2011/125/) –