Dans Visual Basic, il y a une ligne de code que vous pouvez utiliser pour gérer les erreurs dans le codeGestion des erreurs dans Xcode, iPhone SDK
"On Error Resume Next"
Y at-il quelque chose de similaire à Objective-C? Mon problème est que j'ai un bouton d'ajout "Ajouter une nouvelle cellule" qui crée une nouvelle cellule pendant l'exécution. Cependant, les cellules sont réorganisables. Lorsque vous essayez de réorganiser la cellule "Ajouter une nouvelle cellule", j'obtiens une erreur d'index hors limites. Si je peux juste corriger l'erreur, ce serait génial, mais s'il y a un gestionnaire d'erreur que je peux utiliser pour quitter la fonction de déplacement quand il y a une erreur, ce serait cool aussi.
Voici mon code moveRowAtIndexPath:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
iProfileAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate moveFromOriginal:fromIndexPath.row toNew:toIndexPath.row];
}
Voici l'erreur que je reçois:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (7) beyond bounds (7)'
Cela a fonctionné parfaitement. Y a-t-il un moyen d'obtenir le "Ajouter une nouvelle cellule" pour revenir au tout dernier index s'il est déplacé vers un index inférieur? Mon but est d'avoir le "Ajouter une nouvelle cellule" toujours en bas de la table. Avec le code ci-dessus, il permet à la ligne "Ajouter une nouvelle cellule" de se déplacer n'importe où dans la table, et je ne le veux pas. – WrightsCS
Vous ne devriez pas attraper l'exception. Vous devez empêcher le déplacement de la ligne "Ajouter une nouvelle cellule" en premier lieu. Vois ma réponse. – gerry3
En fait, cette méthode fonctionne bien. Lorsque la modification de la table est terminée, l'option "Ajouter une nouvelle cellule" revient au dernier index et toute nouvelle ligne ajoutée est ajoutée à la fin de la table. Je peux me tromper avec la méthode de GERRY3, mais c'était juste une bosse dans la route qui m'avait BUG! – WrightsCS