表达式类型“ @Ivalue字符串?”没有更多上下文会导致模棱两可

时间:2018-10-20 04:19:17

标签: ios swift

我一直收到此错误,我也不知道为什么,这是导致该错误的代码:

@IBAction func sliderChanged(_ sender: UISlider) {
    sliderBet.text = "\(Int(slider.value * Int(String(myScore.text!)!)))"
}

我正在尝试将滑块的值乘以另一个从UILabel获取的变量,这就是为什么我必须将其转换为字符串而不是Int的原因

1 个答案:

答案 0 :(得分:0)

尽管您知道滑块的值在0到1之间,所以它必须是 float ,但为什么敢使用Int或{ {1}}?

Double

@IBAction func sliderChanged(_ sender: UISlider) { sliderBet.text = "\(Int(sender.value * (Float(myScore.text ?? "0") ?? 0))))" } 看起来有点长,但可以将(Float(myScore.text ?? "0") ?? 0)安全地转换为 myScore.text 。当Float为nil或作为数字无效时,它返回myScore.text,而不是崩溃。