我的问题解释如下。 TLDR:我的代码要求我使用第三个变量来表示计算属性的值。我想知道是否有办法只用两个变量来做。
所以我有一个名为firstNumber
的计算属性,它是一个布尔值。
每次更改其值时,我都想更改另一个变量isDecimal
,该变量独立于firstNumber
并且有许多不同的变量可以改变它。
为此,当firstNumber
设置为false时,我还将isDecimal
设置为false。唯一的问题是我还需要firstNumber
布尔值来获取值,所以我创建了一个名为firstNumberAPI
的基础布尔值。
我不认为这是我尝试做的最佳方式。
我想知道是否有人可以在isDecimal
更改时设置firstNumber
的方法,而不会创建第三个firstNumberAPI
变量。
var isDecimal = false
var firstNumberAPI = false
var firstNumber: Bool{
get{
return firstNumberAPI
}
set{
firstNumberAPI = newValue
if newValue==true{
isDecimal = false
}
else{
isDecimal = true
}
}
}
答案 0 :(得分:3)
不需要firstNumberAPI
变量。将firstNumber
更改为:
var isDecimal = false
var firstNumber: Bool {
didSet {
isDecimal = !firstNumber
}
}
有关didSet
的详细信息,请参阅Property Observers手册的The Swift Programming Language部分。