iOSの開発プロセスでは、多くはまた、非常に便利ですが、メモリリークの問題に注意を払うようにブロックを使用するプロセスでブロックを使用。
ブロックが作成されると、以下のように、ブロック内のオブジェクトへのすべての参照は、ブロックを破壊するまで、私たちに必要なプロセスで使用されるブロックはどこのコード例をAFNetworkingに、処理されるように、1でカウントされます:
__weak __typeof(自己)weakSelf = 自己。 self.backgroundTaskIdentifier = [アプリケーションbeginBackgroundTaskWithExpirationHandler:^ { __strong __typeof(weakSelf)strongSelf = weakSelf。 }]。
weakSelf、自己を保持する循環参照を回避し、その後、ブロック内で一度strongSelfを宣言しませんをブロックすることが自己実現のこの過程で放出されることはできませんので、実行されます。このstrongSelfブロックの実装は自動的に解除された後、何の循環参照の問題はありません。
ます。https://www.cnblogs.com/pretty-guy/p/4595989.htmlで再現