如何在willSet / didSet中找出元组的哪个变量更新?
var myTuple: (a: Int, b: Int) {
didSet {
// Which one was set, a or b?
}
}
答案 0 :(得分:3)
实际上,您会使用willSet
获取更新后的值,并使用桥接到newValue
(.a
和.b
)的元组属性访问内容:
var myTuple: (a: Int, b: Int) {
willSet {
print(newValue.a)
print(newValue.b)
}
}
你可以比较这样的值,例如:
var myTuple: (a: Int, b: Int) {
willSet {
if newValue.a != myTuple.a {
print(".a changed")
}
if newValue.b != myTuple.b {
print(".b changed")
}
}
}
答案 1 :(得分:1)
你可以像这样检查oldValue
var myTouple: (a: Int, b: Int) {
didSet {
print(oldValue.a)
print(oldValue.b)
}
}
并比较它们。如果您只设置了一个touple值,例如
myTouple.a = 5
就好像你设置了所有,其余的就像你写的那样得到了旧的价值
myTouple = (5, myTouple.b)