通过[NSOperationQueue operations]
快速枚举是否安全?像这样:
for (NSOperation *op in [operationQueue operations]) {
// Do something with op
}
由于操作是异步的,并且在另一个线程上执行,operations
可以随时更改(包括在主线程执行期间)。快速枚举可以防止这种情况发生吗?还是应该使用copy
(和autorelease
)操作数组?
只有在枚举数组时队列发生变异,才是un安全的。
但是:
返回一个新数组,该数组包含队列中当前的操作。
其中的单词"new"向我表明,队列将为您执行复制和自动发布,因此您可以安全地通过数组进行枚举。