错误:Double 无法转换为 UInt8(在代码的最后一行)
var beweegsnelheid = NSTimeInterval()
var random3 = CGFloat(arc4random_uniform(100))
var beweegsnelheidmax = beweegsnelheid * 1.2
var beweegsnelheidmin = beweegsnelheid * 0.8
beweegsnelheid = NSTimeInterval(beweegsnelheidmin + (random3/100 * (beweegsnelheidmax - beweegsnelheidmin)))
我做错了什么?
最佳答案
您正在尝试将 CGFloat 乘以 Double(CGFloat 是 Float 的类型定义)。
random3/100 * (beweegsnelheidmax - beweegsnelheidmin)
不幸的是,Swift 目前需要到处进行显式类型转换。
var beweegsnelheid = NSTimeInterval()
var random3 = Float(arc4random_uniform(100))
var beweegsnelheidmax = Float(beweegsnelheid * 1.2)
var beweegsnelheidmin = Float(beweegsnelheid * 0.8)
beweegsnelheid = NSTimeInterval(beweegsnelheidmin + (random3/100 * (beweegsnelheidmax - beweegsnelheidmin)))
只要确保始终使用 Float 或 Double 就不会出现问题。
关于xcode - Double 无法转换为 UInt8,Swift 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29168912/