为什么我们需要在Swift中的特定情况下使用setter。
我试图转换' display.text' String
到Double
。我了解getter会返回String
值并将其转换为Double
,并将此值分配给变量newValue
。
问题:为什么我们将display.text值重新设置为String
,如果我们只是将其转换为= "\(newValue)"
?{/ p>
Double
答案 0 :(得分:2)
我知道getter会返回String值并将其转换为Double并将此值赋给变量newValue。
这不正确。 getter只返回double。吸气器中没有newValue
。
在setter中,newValue
是“setter的隐含参数”的快捷方式。显式语法如下:
var doubleValue: Double {
...
set(newValue) {
display.text = "\(newValue)"
}
}
答案 1 :(得分:1)
为了覆盖swift变量的setter和getter,请使用下面给出的代码
var temX : Int?
var x: Int?{
set(newX){
temX = newX
}
get{
return temX
}
我们需要将变量的值保存在临时变量中,因为尝试访问其getter / setter被覆盖的同一变量将导致无限循环。
我们可以像这样调用setter
x = 10
在给定的代码行
下触发将调用Gettervar newVar = x