我有一个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
}
答案 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循环中使用上面的数组。