Objective-C で NSBlockOperation を使用する際のメモリ リークを回避するには、変数を weak として宣言して、ブロック内のブロック操作を参照できるようにする必要があります (必要に応じてキャンセルするため)。通常は次のようになります。
__weak NSBlockOperation *blockOp = [NSBlockOperation blockOperationWithBlock:^{
if (blockOp.cancelled) {
...
}
}];
しかし、Swift では、NSBlockOeartion を弱いと宣言しようとすると、常に nil になります。
weak var blockOp = NSBlockOperation()
弱い参照がなければ、毎回少しずつメモリ リークが発生することを除けば、すべて問題ありません。Swiftでメモリをリークせずにブロック内のブロックを参照するにはどうすればよいですか?