2009-11-27 4 views
2

si j'essaie d'accéder à nsmutableArray avec objectAtIndex: x et si je n'ai aucun objet dans cet index, mon application plante toujours. Donc, ma question est: comment puis-je vérifier, s'il y a quelque chose à cet index, sans plantage de l'application?Accédez NSMutableArray à un index sans valeur

J'espère que vous comprenez ma question. Merci, Alex

Répondre

1

NSArray a une méthode appelée "count". Appel compter sur votre tableau mutable et il vous dira le nombre d'éléments dans le tableau.

5

Vérifiez si votre index est dans les limites de tableau gamme:

if (index >=0 && index < [myArray count]) 
    ... 
+0

Bonjour, merci pour la réponse rapide. Je connais la méthode compte, mais je voulais savoir s'il y a une autre solution pour vérifier si quelque chose est dans un index sur un tableau;), Alex – Alexander

1

Si vous êtes dans les limites du tableau, vous aurez toujours un objet à un index spécifique entre 0 et [array count], le tableau ne peut pas avoir des lacunes de nil valeurs dedans.

+3

Vous ne devriez jamais obtenir une valeur nulle de objectAtIndex: Tous les éléments d'un NSArray sont requis pour être non-nul. –

+0

@Mark - merci de le signaler. – luvieere

0

Essayez cette

for(i=0; i< [myMutableArrayObject count]; i++) { 
NSLog(@"%@",[[myMutableArrayObject objectAtIndex: i] myMethodDefined]); 
} 

Ici, nous utilisons une méthode prédéfinie appelée comptage qui retourne le nombre d'objets dans l'objet MutableArray puis une autre méthode objectAtIndex qui itère les objets à l'intervalle de 0 à (nombre - 1).

Cordialement, Sumit

1

Vous avez deux options: utiliser la méthode count pour vous assurer que vous êtes dans les limites du tableau, ou attraper l'exception lorsque vous essayez d'utiliser objectAtIndex: Contrôle de la plage avec comptage sera frais généraux beaucoup plus bas que d'attraper l'exception. Si vous ne le saviez pas, il n'y a pas de "trous" autorisés dans un NSArray - les objets de l'index 0 à la fin du tableau ([array count]-1] seront tous accessibles.

Questions connexes