Я не думаю, что код, который у вас есть, особенно уродлив - нет ничего плохого в том, чтобы использовать индексированный цикл for, как вы уже сделали.Единственное, что я мог бы изменить, это инвертировать смысл оператора if
, чтобы избежать пустой строки // Don't add the id
.Вот один из способов:
for (int i = 0; i < [careerIds count]; i++) {
NSString *titleString = [[titles objectAtIndex:i] stringValue];
if (([titleString length] > 0) &&
([titleString rangeOfString:@"Intresseanmälan"].location == NSNotFound))
{
[ids addObject:[[careerIds objectAtIndex:i] stringValue]];
}
}
Чтобы понять суть вашего вопроса, нет, я не верю, что можно использовать версию с быстрым перечислением цикла for
для перебора содержимого двухотдельные контейнеры одновременно.Вы можете использовать его с одним, но, как я указал в комментарии, вам нужно будет использовать -indexOfObject:
, чтобы восстановить индекс текущего объекта, чтобы вы могли получить соответствующий элемент из другого массива, используя -objectAtIndex:
.