2

我有一个 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
}
4

1 回答 1

0

您可以使用标准 for 循环:

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 循环中使用上面的数组。

于 2011-08-16T13:18:18.803 回答