2010-04-14 8 views
4

L'objet objectAtIndex commence par 1 au lieu de 0? J'utilise objectAtIndex, et en passant des données 0, mais il a dit que c'est hors limite. Donc, je suppose que cela commence à 1, ai-je raison?À propos de NSMutableArray objectAtIndex

Répondre

4

NSMutableArray est indexé sur zéro. Toutefois; du docs:

Si l'indice est au-delà de l'extrémité de la matrice (qui est, si l'index est supérieur ou égal à la valeur renvoyée par comptage), un NSRangeException est soulevée.

S'il n'y a rien stocké dans la baie, l'accès à l'index 0 échouera au test ci-dessus et provoquera l'erreur.

4

Non, il commence par 0.

Assurez-vous que votre tableau est rempli bien. Si le tableau est vide, vous ne pouvez pas utiliser -objectAtIndex: avec des index, car il n'y a aucun moyen de retourner quelque chose.

5

Il commence à 0. Si vous avez une exception, c'est parce que le tableau était vide. Vous devez d'abord ajouter quelque chose au tableau avant qu'il ait un contenu. Utilisez addObject: pour y mettre des objets. Utilisez count pour connaître le nombre d'éléments qui s'y trouvent actuellement.

Questions connexes