これを行う方法はいくつかあります。しかし、私が行ったやり方がリークを引き起こしていないことを確認したい。自分で__blockを使用する
私は(ARCを使用して)私のプロジェクト内のブロックを持っていると私は、次の
id __block blockSelf = self;
を行って、その後、ブロック内blockSelfで自己を交換した保持サイクルを防ぐために。
乾杯
これを行う方法はいくつかあります。しかし、私が行ったやり方がリークを引き起こしていないことを確認したい。自分で__blockを使用する
私は(ARCを使用して)私のプロジェクト内のブロックを持っていると私は、次の
id __block blockSelf = self;
を行って、その後、ブロック内blockSelfで自己を交換した保持サイクルを防ぐために。
乾杯
あなたのコードはまだブロック内部の自己のオブジェクトを保持しますこれは良いコーディング習慣です - 私は、次の手順を実行します
__weak SomeObject *weakSelf = self;
もthis answerを参照してください。
希望すると便利です。 MRCの場合
乾杯私はあなた方がそれをやるより良い方法だと思います。私は上記のコードを使用してプロファイラを実行し、漏れはありませんでした。このインスタンスでは__blockが何をするのかは完全にはわかりません – geminiCoder
Docuブックマークリストのリンクは次のとおりです。http://thirdcog.eu/pwcblocks/#arcblocks – CarlJ
ARCを使用すると弱い – geminiCoder
、
__block id blockSelf = self;
は、 '自己' を保持しません。
ただし、ARCでは機能しません。あなたは使用する必要があります:
__weak id weakSelf = self;
ニース見つける。私が言う唯一のことは、ARCを使用しないことです。 – geminiCoder