【问题标题】:Are willset and didset considered closures in Swift?willset 和 didset 在 Swift 中被认为是闭包吗?
【发布时间】:2015-07-23 06:22:30
【问题描述】:

我了解willsetdidset 的用途,我不确定它们是否被视为闭包。

如果它们是闭包,那么下面的代码不应该产生一个强引用循环吗?

var myProperty : Int = 0 {
    didSet { self.callMyMethod() }
}

【问题讨论】:

    标签: swift closures strong-references didset


    【解决方案1】:

    不,它们不是闭包。你可以把它想象成一种不能直接访问的特殊类型的函数;它只会在属性更改时调用。 (函数名为myapp.MyStruct.myProperty.didset;您可以在调试器中看到。)

    【讨论】:

    • 但是如果函数是闭包的特例,而 willSet 和 didSet 是函数的特例,那么它们肯定也是闭包的特例吗?来自The Swift Programming Language:“函数中介绍的全局和嵌套函数实际上是闭包的特殊情况。”
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多