Swift - didSet 中的弱自我
Swift - weak self in didSet
我很少看到有人在 didSet
中使用 [weak self]
。这有什么原因吗?
我试图在我的 didSet
变量中使用 [weak self]
:
var data: Dictionary<String, Any>! { // [1]
didSet { [2]
self?.layoutSubviews()
}
}
无论我将 [weak self] in
放在 [1] 还是 [2],我仍然得到错误:Use of unresolved identifier weak
这是为什么?将 [weak self]
用于 didSet
是否违法?
此致,
didSet
不是闭包,不能使用闭包语法。
没有理由在那里使用 weak self
。 didSet
处理程序不会像方法不创建所有权循环那样创建所有权循环。
不要那样做。
使用 [weak self]
是没有意义的,因为 didSet
不会捕获任何东西,也永远不会创建保留循环。
我很少看到有人在 didSet
中使用 [weak self]
。这有什么原因吗?
我试图在我的 didSet
变量中使用 [weak self]
:
var data: Dictionary<String, Any>! { // [1]
didSet { [2]
self?.layoutSubviews()
}
}
无论我将 [weak self] in
放在 [1] 还是 [2],我仍然得到错误:Use of unresolved identifier weak
这是为什么?将 [weak self]
用于 didSet
是否违法?
此致,
didSet
不是闭包,不能使用闭包语法。
没有理由在那里使用 weak self
。 didSet
处理程序不会像方法不创建所有权循环那样创建所有权循环。
不要那样做。
使用 [weak self]
是没有意义的,因为 didSet
不会捕获任何东西,也永远不会创建保留循环。