这可能很简单,但我做了几次快速搜索,但无法找到答案。我是否必须保留NSOperationQueue
(通过使用属性等)以避免在方法完成执行后释放它。例如:
- (void)doOperation:(NSOperation *)someOperation {
NSOperationQueue *queue = [[NSOperationQueue alloc] init]
[queue addOperation:someOperation];
}
我知道队列在执行时会保留该操作,但是队列是否会被arc释放,因为它没有超出此方法范围的显式引用?
答案 0 :(得分:1)
文档说:
操作队列将保留操作直到操作完成,而队列本身将保留直到所有操作完成。
因此,常见模式
[[[NSOperationQueue alloc] init] addOperation:op];
或者,在Swift中
OperationQueue().addOperation(op)
很安全。