我似乎无法在随机数生成器中使用我的变量

问题描述 投票:0回答:1

理想情况下,我尝试将一个 TextField 输入设置为变量shortestWait,另一个设置为longestWait,然后我将能够在shortestWait 和longestWait 之间的随机数生成器中使用它们。

@State var shortestWait = 30
@State var longestestWait = 60

@State var randomInt = Int.random(in: shortestWait...longestWait)

我预计这会起作用,但是我收到以下错误: 无法在属性初始值设定项中使用实例成员“shortestWait”,属性初始值设定项在 self 可用之前运行。

arrays swift variables
1个回答
0
投票

workingdog告诉你问题了。您不能让一个属性的初始值依赖于另一个属性的初始值。相反,像这样:

@State var shortestWait = 30 {
    didSet {
        calcRandomInt()
    }
}
@State var longestestWait = 60
    didSet {
        calcRandomInt()
    }
}

@State var randomInt = Int.random(in: 30...60) // The initial value is a throw-away.


func calcRandomInt() {
    randomInt = Int.random(in: shortestWait...longestWait)
}
© www.soinside.com 2019 - 2024. All rights reserved.