我很少看到人们在didSet中使用didSet。这有什么原因吗?
我尝试在变量的[weak self]中使用didSet:
var data: Dictionary<String, Any>! { // [1]
didSet { [2]
self?.layoutSubviews()
}
}如果我将[weak self] in设为1或2,我仍然会得到错误:Use of unresolved identifier weak
为什么会这样呢?将[weak self]用于didSet是非法的吗?
致以敬意,
发布于 2017-04-29 09:00:09
didSet不是闭包,您不能对它使用闭包语法。
没有理由在那里使用weak self。didSet处理程序不会以方法不创建所有权周期的方式创建所有权周期。
发布于 2017-04-29 09:01:09
别干那事。
使用[weak self]是荒谬的,因为didSet不捕获任何东西,也永远不会创建保留周期。
https://stackoverflow.com/questions/43693703
复制相似问题