Setter Method不会分配属性

时间:2015-06-26 02:27:44

标签: swift

我的setter方法无法设置正确的属性。我在你指定它时试图将华氏温度属性分配给摄氏温度。

    var fahrenheit: Float {

get {
    return (celsius * 1.8) + 32.0

    }

    set {

    fahrenheit = (fahrenheit - 32) / 1.8

    }
} 

为什么我的setter方法不起作用?

2 个答案:

答案 0 :(得分:3)

由于您使用的是set {,因此您应该使用的变量名称来访问要设置的值newValue

fahrenheit = (fahrenheit - 32) / 1.8

应该成为

celsius = (newValue - 32) / 1.8

Computed Properties的Swift文档中,对于setter,您可以通过执行set(newFahrenheit) {来定义新值的名称,或者您可以使用仅仅{{1的'Shorthand Setter Declaration'正如您目前所做的那样,它将变量名称定义为set {

答案 1 :(得分:0)

因为你指定的是华氏温度,而不是摄氏温度。

['bacon', 'BLTsandwich_bread_lettuce_tomato_bread']

应该是:

fahrenheit = ...

大概你已经有了一个摄氏变量实例变量。