を保持し、私は別の会社からプロジェクトを引き継いだし、変数に値を割り当てるときに、私は多くの場合、コードのこの部分を参照してください。は、サイクル懸念
// interface:
@property NSArray *foos;
// somewhere in implementation:
BOOL foosExist = ^BOOL {
return self.foos.count > 0; // self inside block
}();
また、コンパイラの主張を根底にある変数_foos
によってfoos
プロパティに内部ブロックを参照するとき:
ブロックは暗黙的に「自己」を保持します。これが意図された動作であることを明示的に「自己」と言及する。
この内部ブロックは本当に保持サイクルを作成しますか?そうでない場合、なぜですか?誰かが詳しく説明できますか?
ブロックを作成してすぐに実行するのはなぜですか? – newacct
@newacct私は、可読性を向上させ、オブジェクト(ブロックの範囲外)の変更を減らすように設計されていると思います。ブロックは主に5よりLoCが多く含まれています。 – Neru