Смотреть следующий объект в NSEnumerator - PullRequest
2 голосов
/ 16 августа 2011

У меня есть объект 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 Ответ

0 голосов
/ 16 августа 2011

Вы можете использовать стандартные для цикла:

for(uint i = 0; i < [myLines count]; i++) {
    ...
}

Вы можете получить предыдущую и следующую строки, используя индекс итерации:

[myLines objectAtIndex:(i-1)]; // previous
[myLines objectAtIndex:(i+1)]; // next

Обязательно проверьте ихсначала существование.

update

NSArray *lineArray = [allTheText componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

Использовать массив выше в цикле for.

...