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

时间:2011-06-26 00:21:13

标签: cocoa-touch cocoa nsoperation nsoperationqueue fast-enumeration

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

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

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

1 个答案:

答案 0 :(得分:11)

如果队列在枚举时改变了数组,那么它只有 un 安全。

然而:

  

返回一个包含当前队列中操作的新数组。

there中的“new”一词向我建议队列将为您执行复制和自动释放,因此您可以安全地枚举数组。