Смотреть следующий объект в 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.

Другие вопросы по тегам