我在引用块本身内部的“NSBlockOperation”时遇到了麻烦。我需要检查操作是否被取消,并且在启用 ARC 的项目中运行时,似乎对“searchOperation”的任何访问都会泄漏。
这段代码基本上什么都不做,它显示了启用 ARC 的项目中的泄漏,而在非 ARC 项目中工作正常。
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchQueue = [[NSOperationQueue alloc] init];
self.searchQueue.maxConcurrentOperationCount = 1;
__block NSBlockOperation *searchOperation = [NSBlockOperation blockOperationWithBlock:^{
if (searchOperation.isCancelled) return;
}];
[self.searchQueue addOperation:searchOperation];
}
谢谢。