在NSEnumerator中观察下一个对象

时间:2011-08-16 13:15:43

标签: objective-c parsing 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 个答案:

答案 0 :(得分:0)

您可以使用标准循环:

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