Смотреть следующий объект в NSEnumerator
У меня есть объект NSEnumerator с текстовыми строками, полученными из NSTextView, проанализирован с помощью:
NSEnumerator *myLines = [[allTheText componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] objectEnumerator];
Я обрабатываю строки внутри цикла for следующим образом:
for (NSString *current_line in myLines)
{
//doing something
}
Это работает нормально, но теперь мне нужно смотреть следующий объект при обработке текущего. Каков наилучший способ сделать это, не прерывая текущий цикл? Если я сделаю что-то вроде этого (внутри текущего цикла), это не сработает:
//inside the previous cycle
NSString *next_line;
if (next_line = [myLines nextObject])
{
//process next line
}
1 ответ
Вы можете использовать стандарт для цикла:
for(uint i = 0; i < [myLines count]; i++) {
...
}
Вы сможете получить предыдущие и следующие строки, используя индекс итерации:
[myLines objectAtIndex:(i-1)]; // previous
[myLines objectAtIndex:(i+1)]; // next
Обязательно сначала проверьте их наличие.
Обновить
NSArray *lineArray = [allTheText componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
Используйте массив выше в цикле for.