ブロック自体の内部の「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];
}
ありがとう。