gpt4 book ai didi

ios - 结构默认初始化程序不触发 didSet

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:59 26 4
gpt4 key购买 nike

xcode 版本:7.3.1

大家好

我正在关注最新的 Stanford Uni iOS 类(class)。在正在创建的其中一个应用程序中,我们创建了一个具有许多属性的结构。

因为它是一个结构,所以我得到了一个免费的初始化器,我在我的 Controller 中调用它。然后,我将 struct instance 设为计算属性,以便调用 didSet。

这是结构

struct FacialExpression
{
var eyes: Eyes = Eyes.Open
var eyeBrows: EyeBrows = EyeBrows.Normal
var mouth: Mouth = Mouth.Smile

enum Eyes: Int {
case Open
case Closed
case Squinting
}

enum EyeBrows: Int {
case Relaxed
case Normal
case Furrowed

func moreRelaxedBrow() -> EyeBrows {
return EyeBrows(rawValue: rawValue - 1) ?? .Relaxed
}
func moreFurrowedBrow() -> EyeBrows {
return EyeBrows(rawValue: rawValue + 1 ) ?? .Furrowed
}
}

enum Mouth: Int {
case Frown
case Smirk
case Neutral
case Grin
case Smile

}
}

这是创建结构实例的 Controller

class FaceController: UIViewController {

var expression = FacialExpression(eyes: .Open, eyeBrows: .Normal, mouth: .Smile) {

didSet {
updateUI()
}

}
}

此 Controller 是应用程序中的默认且唯一的 Controller ,并且会调用 init 行。

didSet() 永远不会被调用。

谁能解释一下为什么?

最佳答案

在初始化期间不会调用属性观察器。

看看this问题。

关于ios - 结构默认初始化程序不触发 didSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com