【发布时间】:2015-05-06 00:09:57
【问题描述】:
我试图了解何时需要注意由强引用循环引起的可能的内存泄漏。根据我从 swift 文档中收集到的信息,在声明为同一实例中的实例属性的闭包中使用 self 引用将导致强引用循环,除非我声明一个捕获列表,例如:
class A {
var a: String
lazy var aClosure: () -> () = { [unowned self] in
println(self.a)
}
init(a: String) {
self.a = a
}
}
现在,未存储为实例属性的闭包或存储为其他类的实例属性的闭包会发生什么情况?在这些情况下,我还需要担心强引用循环吗?
【问题讨论】:
标签: ios swift memory-leaks closures strong-references