xcode - Double 无法转换为 UInt8,Swift 错误

标签 xcode swift nstimeinterval

错误: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 是 Fl​​oat 的类型定义)。

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/

相关文章:

swift - 没有特征信息(运行时警告)

ios - 如何在 XCode 4.2 中使用以前的(3.x 和 4.x)模拟器

xcode - 从特定时间限制 UIDatePicker 日期。例如输入 DOB 以限制年龄限制

ios - 比较两个 NSDates 日、月和年整数

swift - 字符串数组排序

ios - 需要有关将 UIDatePicker 时间转换为时间戳的帮助

ios - 将 iPhone 模拟器重置为默认值?

swift - 如何在另一个上显示分数文本编号?

ios - 协调 CACurrentMediaTime() 和 deviceCurrentTime

objective-c - 如何正确使用 NSTimeInterval?