Как я могу получить индекс массива в цикле "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
}
Ответы
Ответ 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)
{
…
}];