2009-03-12 8 views
3

Mon application contient une vue tabulaire avec des lignes et des sections.
Lorsque je supprime le dernier élément d'une section, je supprime la section. Ça fonctionne bien. Mais, quand je déplace la dernière rangée d'une section dans une autre section, j'obtiens une erreur.Vue de table par défaut - suppression de sections

Voici mon code dans les deux cas:

[categoryArray removeObjectAtIndex:indexPath.section]; 
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 

Voici l'erreur qui se produit dans moveRowAtIndexPath: fromIndexPath: toIndexPath:

2009-03-11 17:56:09.524 Test[5140:20b] 1 
2009-03-11 17:56:09.525 Test[5140:20b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (5) beyond bounds (5)' 

Toute aide serait génial!

Répondre

0

Il semble que vous essayez d'accéder au sixième élément d'un tableau à cinq éléments. Utilisez-vous la taille du tableau comme index sans soustraire 1?

2

Eh bien, en fait, mon code n'essaie pas d'accéder à un élément. Je pense que l'erreur provient d'une méthode UITableView (que je ne connais pas car nous n'avons accès qu'aux fichiers d'en-tête du sdk). Le problème se produit à ce stade:

[tableView deleteSections:[NSIndexSet indexSetWithIndex:fromIndexPath.section] withRowAnimation:UITableViewRowAnimationTop]; 
+0

Comment avez-vous résolu ce problème? Je semble en avoir un similaire –

0

J'ai eu cette question et je viens de résoudre ce. Dans mon cas, j'utilisais Core Data, et je devais envelopper la logique de suppression dans

[tableView beginUpdates]; 
    ... 
    [tableView endUpdates]; 

Je devais tout emballer; d'avant j'ai supprimé les données/section jusqu'à après que j'avais enregistré le contexte. J'espère que cela aide.

Questions connexes