2017-08-16 7 views

答えて

2

安全。重要な部分は、変数が__weakと宣言されていることです。だから、それをselfのインスタンスとして使用し、他のクラスではない場合、ランタイムはコンパイラがどのタイプのコンパイラであるかを気にしません(この場合、コンパイラは__auto_typeです右のタイプ)。

弱い修飾子は、selfが参照されているブロックを直接的または間接的に保持している場合にのみ必要であることにも注意してください。多くのブロックでは、普通の古いselfは保持サイクルから安全です。

+0

はい、私はすでに、必ずしも必要というわけではなく、必要であればそう簡単に見えないことを発見しました。コンパイラは私に警告を与えていますが、100%信頼できるかどうかはわかりません。 – Renetik

1

はい、そうです。 wvarに参照を格納しません。これは、「__weak __auto_type」と入力すると時間を節約するのに便利な方法です:)

+0

はい、またそれほど素晴らしい# wvar _self = self; 対 __weak __auto_type _self = self; 確かに私はそれをたくさん...ブロックをたくさん使っています。 – Renetik

関連する問題