Math Swift2:使用Int64和Int32进行数学运算?

Math Swift2:使用Int64和Int32进行数学运算?,math,swift2,Math,Swift2,处理Swift中同时涉及Int64和Int32的操作的正确方法是什么?例如,以下操作失败,“二进制运算符“/”不能应用于“Int32”和“Int64”类型的操作数: 这里的简单场景有效: let i64 : Int64 = 1 let i32 : Int32 = 1 let val = Int64(i32) / i64 现在,我的“真实世界”案例是,它因“无法使用类型为“(Int32)”的参数列表调用类型为“Int64”的初始值设定项”而失败: 纯情况和上述情况有什么不同?我将如何解决这个问题

处理Swift中同时涉及Int64和Int32的操作的正确方法是什么?例如,以下操作失败,“二进制运算符“/”不能应用于“Int32”和“Int64”类型的操作数:

这里的简单场景有效:

let i64 : Int64 = 1
let i32 : Int32 = 1
let val = Int64(i32) / i64
现在,我的“真实世界”案例是,它因“无法使用类型为“(Int32)”的参数列表调用类型为“Int64”的初始值设定项”而失败:


纯情况和上述情况有什么不同?我将如何解决这个问题?Int32或Int64有多种类型吗?

Swift不允许对不同类型的值进行数学运算

您正在访问

timedMetadataGroup.timeRange.start.timescale.value
但是
timescale
的类型是
CMTimeScale
,它是
Int32
的别名。因此,我认为您应该停止计时并删除
.value
部分

let startSecs = timedMetadataGroup.timeRange.start.value / Int64(timedMetadataGroup.timeRange.start.timescale)
timedMetadataGroup.timeRange.start.timescale.value
let startSecs = timedMetadataGroup.timeRange.start.value / Int64(timedMetadataGroup.timeRange.start.timescale)