斯威夫特的吸尘器和二传手

时间:2015-05-22 20:56:02

标签: swift getter-setter computed-properties

为什么我们需要在Swift中的特定情况下使用setter。

我试图转换' display.text' StringDouble。我了解getter会返回String值并将其转换为Double,并将此值分配给变量newValue

问题:为什么我们将display.text值重新设置为String,如果我们只是将其转换为= "\(newValue)"?{/ p>

Double

2 个答案:

答案 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

在给定的代码行

下触发将调用Getter
var newVar = x