通过[NSOperationQueue操作]枚举是否安全?

Ada*_*nst 5 cocoa cocoa-touch nsoperation fast-enumeration nsoperationqueue

通过快速枚举来枚举是否安全[NSOperationQueue operations]?像这样:

for (NSOperation *op in [operationQueue operations]) {
    // Do something with op
}
Run Code Online (Sandbox Code Playgroud)

由于操作是异步的并且在另一个线程上执行,operations因此可以随时更改(包括在主线程执行期间).快速枚举是否可以防止这种情况,或者我应该copy(和autorelease)操作数组?

Pet*_*sey 11

这只是联合国如果队列变异数组,而你枚举它的安全.

然而:

返回包含当前队列中的操作的新数组.

那里的 "new"这个词告诉我队列会为你做复制和自动释放,所以你可以安全地枚举数组.