NSMutableArray
-
13-09-2019 - |
Question
J'ai NSMutableArray:
NSMutableArray *temp = //get list from somewhere.
Maintenant, il existe une méthode objectAtIndex qui renvoie l'objet à l'index spécifié.
Ce que je veux faire est que, je veux d'abord vérifier si un objet à l'index spécifié existe ou non. Si elle existe que je veux aller chercher cet objet. Quelque chose comme:
if ([temp objectAtIndex:2] != nil)
{
//fetch the object
}
Mais je me exception à l'instruction if disant que l'indice au-delà lié.
S'il vous plaît quelqu'un me dire comment y parvenir.
La solution
vous ne pouvez pas avoir des fentes « vides » dans un NSArray. Si [count monTableau] == 2 tableau-à-dire comporte deux éléments, alors vous savez bien sûr qu'il ya un objet à l'index 0 et un objet à l'index 1. Ceci est toujours le cas.
Autres conseils
Vérifiez la première longueur en utilisant la méthode de comptage.
if ([temp count] > indexIWantToFetch)
id object = [temp objectAtIndex:indexIWantToFetch];
vous pouvez le faire de cette façon:
Lorsque vous initialisez, faire quelque chose comme:
NSMutableArray *YourObjectArray = [[NSMutableArray alloc] init];
for(int index = 0; index < desiredLength; index++)
{
[YourObjectArray addObject:[NSNull null]];
}
Ensuite, lorsque vous voulez ajouter mais il faut vérifier si elle existe déjà, faites quelque chose comme ceci:
YourObject *object = [YourObjectArray objectAtIndex:index];
if ((NSNull *) object == [NSNull null])
{
/// TODO get your object here..
[YourObjectArray replaceObjectAtIndex:index withObject:object];
}
Il suffit de vérifier que l'indice est> = 0 et Retourne le nombre d'objets actuellement dans le récepteur. - (NSUInteger)count
int arrayEntryCount = [temp count];
D'abord tout ce que vous vérifiez la longueur du tableau -
* NSMutableArray temp = // obtenir la liste de quelque part.
Check- if (longueur de temp) {
Votre objectclass * obj = [temp objectAtIndex: indexnumber];
// indexnumber est 0,1,2, 3 ou quelqu'un ...
}