可可触摸-通过[NSOperationQueue操作]枚举是否安全



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

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

由于操作是异步的,并且在另一个线程上执行,operations可以随时更改(包括在主线程执行期间)。快速枚举可以防止这种情况发生吗?还是应该使用copy(和autorelease)操作数组?

只有在枚举数组时队列发生变异,才是un安全的。

但是:

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

其中的单词"new"向我表明,队列将为您执行复制和自动发布,因此您可以安全地通过数组进行枚举。

最新更新