強い参照サイクルによって引き起こされる可能性のあるメモリ リークをいつ監視する必要があるかを理解しようとしています。迅速なドキュメントから収集できたことからself
、同じインスタンス内でインスタンス プロパティとして宣言されたクロージャで参照を使用すると、キャプチャ リストを宣言しない限り、強い参照サイクルが発生します。
class A {
var a: String
lazy var aClosure: () -> () = { [unowned self] in
println(self.a)
}
init(a: String) {
self.a = a
}
}
インスタンス プロパティとして格納されていないクロージャや、他のクラスのインスタンス プロパティとして格納されているクロージャはどうなるでしょうか。これらの場合でも、強い参照サイクルについて心配する必要はありますか?