NSOperationQueues在运行时是否自动保留?

时间:2014-06-25 17:43:58

标签: ios objective-c automatic-ref-counting nsoperationqueue

这可能很简单,但我做了几次快速搜索,但无法找到答案。我是否必须保留NSOperationQueue(通过使用属性等)以避免在方法完成执行后释放它。例如:

- (void)doOperation:(NSOperation *)someOperation {
    NSOperationQueue *queue = [[NSOperationQueue alloc] init]
    [queue addOperation:someOperation];
}

我知道队列在执行时会保留该操作,但是队列是否会被arc释放,因为它没有超出此方法范围的显式引用?

1 个答案:

答案 0 :(得分:1)

文档说:

  

操作队列将保留操作直到操作完成,而队列本身将保留直到所有操作完成。

因此,常见模式

[[[NSOperationQueue alloc] init] addOperation:op];

或者,在Swift中

OperationQueue().addOperation(op)

很安全。