节日快乐!
我在 Neuberg 的“iOS 10 Programming Fundamentals”的第 147 页受到阻碍。他的主张是“当你明显改变一个值类型的实例时,你实际上是在用不同的实例替换那个实例。”
问题:如果这是真的,那么为什么我没有看到正在初始化的新实例?
///////////////////// Slight modification from page 147 in Neuberg, 2016 edition
struct Digit {
var number : Int
init(_ n:Int) {
self.number = n
print("number was set in the initializer to: \(n)")
}
}
var d : Digit = Digit(123) {
didSet {
print("didSet detected old: \(oldValue.number) to new: \(d.number)")
}
}
d.number = 42
d.number = 56
打印
——在初始化程序中将数字设置为:123
检测到的 didSet 变化:123 到 42
检测到的 didSet 变化:42 到 56
但我再也看不到“号码已设置……”