40 votes

comment puis-je obtenir l'index du tableau dans une boucle objective-c "for (id item in items)" ?

Comment puis-je obtenir l'index du tableau dans une boucle "for (id item in items)" dans objective-c ? Pour NSArray ou NSMutableArray par exemple.

Par exemple :

for (id item in items) {
    // How to get item's array index here

}

88voto

Bavarious Points 43993

Alternativement, vous pouvez utiliser -enumerateObjectsUsingBlock:, qui passe à la fois l'élément de tableau et l'index correspondant comme arguments au bloc :

[items enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop)
{
    …
}];

Bonus : exécution simultanée de l'opération de bloc sur les éléments du tableau :

[items enumerateObjectsWithOptions:NSEnumerationConcurrent
    usingBlock:^(id item, NSUInteger idx, BOOL *stop)
{
    …
}];

46voto

Ryan Wersal Points 2542

La seule façon dont je peux penser est :

NSUInteger count = 0;
for (id item in items)
{
    //do stuff using count as your index
    count++;
}

Mauvaise façon

Vous pouvez également utiliser le message indexOfObject: d'un NSArray pour obtenir l'index :

NSUInteger index;
for (id item in items)
{
    index = [items indexOfObject:item];
    //do stuff using index
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X