我的setter方法无法设置正确的属性。我在你指定它时试图将华氏温度属性分配给摄氏温度。
var fahrenheit: Float {
get {
return (celsius * 1.8) + 32.0
}
set {
fahrenheit = (fahrenheit - 32) / 1.8
}
}
为什么我的setter方法不起作用?
答案 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 = ...
大概你已经有了一个摄氏变量实例变量。