2

NSTextView から取得したテキスト行を含む NSEnumerator オブジェクトがあり、次のように解析されます。

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 に答える