【发布时间】:2017-04-11 14:51:51
【问题描述】:
我的属性 getter 引用 self 的情况下,我怀疑它会持有 self 并且永远不会释放它。如果我在这种情况下没有犯错,请解释一下?
private var storyboard: UIStoryboard {
get {
return UIStoryboard(name: "Login", bundle: Bundle(for: type(of:self)))
}
}
【问题讨论】:
-
属性 getter 不是闭包,编译器甚至不会让你使用 unowned self。
-
计算属性只不过是一个美化的(一对)方法——没有保留周期问题。你测试过吗(即在
deinit中添加print)? -
@Hamish 是的,我有与包含此属性的类相关的内存泄漏。
-
@OlegGordiichuk 您的问题可能出在其他地方——我认为您向我们展示的代码没有任何问题。如果你能把它减少到minimal reproducible example,那就太好了。
-
@Hamish thx 我发现与 CTFontManagerRegisterGraphicsFont 相关的问题。你是对的。能否请您回答,以便我接受。
标签: ios swift memory-management