Подтвердить что ты не робот

Как я могу получить индекс массива в цикле "for (id item in items)" objective-c?

Как я могу получить индекс массива в элементе "for (id item in items)" в objective-c? Например, для NSArray или NSMutableArray.

Например:

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

}
4b9b3361

Ответ 1

Только так я могу думать:

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

Плохой путь

В качестве альтернативы вы можете использовать сообщение indexOfObject: NSArray, чтобы получить индекс:

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

Ответ 2

В качестве альтернативы вы можете использовать -enumerateObjectsUsingBlock:, который передает как элемент массива, так и соответствующий индекс в качестве аргументов в блок:

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

Бонус: одновременное выполнение операции блока над элементами массива:

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