swift - 计算属性中的基础变量 | swift

标签 swift

我的问题解释如下。 TLDR:我的代码要求我使用第三个变量来表示计算属性的值。我想知道是否有办法只用两个变量来做到这一点。

所以我有一个名为 firstNumber 的计算属性,它是一个 bool 值。 每次它的值改变时,我都想改变另一个变量 isDecimal,它独立于 firstNumber 并且有很多不同的东西可以改变它。

为此,当 firstNumber 设置为 false 时,我还将 isDecimal 设置为 false。唯一的问题是我还需要 firstNumber bool 值有一个值,所以我创建了一个名为 firstNumberAPI 的底层 bool 值。

我认为这不是做我想做的事情的最佳方式。 我想知道是否有人可以建议一种在 firstNumber 更改时设置 isDecimal 的方法,而无需创建第三个 firstNumberAPI 变量。

var isDecimal = false
var firstNumberAPI = false

var firstNumber: Bool{
    get{
        return firstNumberAPI
    }
    set{
        firstNumberAPI = newValue
        if newValue==true{
            isDecimal = false
        }
        else{
            isDecimal = true
        }
    }
}

最佳答案

不需要 firstNumberAPI 变量。将 firstNumber 更改为:

var isDecimal = false

var firstNumber: Bool {
    didSet {
        isDecimal = !firstNumber
    }
}

参见 Property ObserversThe Swift Programming Language预订有关 didSet 的详细信息。

关于swift - 计算属性中的基础变量 | swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43620641/

相关文章:

swift - 如何约束泛型函数关联类型

ios - 为什么表格 View 的大小与 iPhone X~iPhone XS Max 不同?

ios - Swift 中的 parser.parse() 导致 EXC_BAD_ACCESS

ios - 如何在 Swift 3 中使用 AVAudioPlayer 播放 .ogg 音频文件?

ios - 以编程方式在 Swift 中的选项卡之间切换

ios - Admob 广告与 Firebase 集成问题

ios - 下载图像并显示在表格单元格上(并发)

ios - 使通用 View 正确对齐 subview 作为快速添加

ios - 检查字符串中是否存在电话号码

ios - TableView 单元格不可转换为 Void