Я перебираю NSArray в target-c с помощью:
for (id object in array1) { ... }
Теперь у меня есть другой массив2, и мне нужен доступ с тем же индексом текущего массива1.
Должен ли я использовать другой для заявления?
спасибо
У вас есть несколько вариантов:
Используйте c-стиль для цикла, как предложил Дан
Отслеживание текущего индекса в отдельной переменной в режиме быстрого перечисления:
int index = 0; for (id object in array1) { id object2 = [array2 objectAtIndex:index]; ... ++index; }
Использование метода enumerateObjectsUsingBlock: (ОС 4.0 +):
enumerateObjectsUsingBlock:
[array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){ id obj2 = [array2 objectAtIndex:idx]; ... }];
Если вам нужно обмениваться индексами, вы можете использовать стиль c для цикла:
for( int i = 0; i < [array1 count]; ++i ) { id object2 = [array2 objectAtIndex:i]; //Do something with object2 }