Swift - didSet 中的弱 self

标签 swift weak-references 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 selfdidSet 处理程序不会像方法不创建所有权循环那样创建所有权循环。

关于Swift - didSet 中的弱 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43693703/

相关文章:

python - 解释器何时释放模块作用域变量引用?

swift - didSet 没有被 Swift 中的 Array.append() 调用

ios - 使用 didSet 进行通知时出现问题

我可以更改另一个 c 文件中符号(函数)的属性吗?

swift - 将图像上传到 Azure 存储

swift - 如何在没有 "Optional"的情况下从 plist 打印字符串?

swift - 在 VSTS 上的云托管 Mac 上的 Xcode 中构建错误

java - 弱引用、意外对象删除

ios - 使用 didSet 将目标添加到 UITableViewCell 中的 UIButton

ios - 是否可以在 Firebase 应用程序中安排登录?