5

高速列挙を介して、を介して列挙するのは安全[NSOperationQueue operations]ですか?そのようです:

for (NSOperation *op in [operationQueue operations]) {
    // Do something with op
}

操作は非同期であり、別のスレッドで実行されるoperationsため、いつでも変更される可能性があります(メインスレッドの実行中を含む)。高速列挙はこれを防ぎますか、それとも代わりに操作配列を使用する必要がcopyありますか?autorelease

4

1 に答える 1

11

配列を列挙しているときにキューが配列を変更した場合にのみ安全ではありません。

でも:

現在キューにある操作を含む新しい配列を返します。

そこにある「新しい」という言葉は、キューがコピーと自動解放を行うことを示唆しているので、配列を安全に列挙できます。

于 2011-06-26T03:17:35.530 に答える