我正在使用Swift 1.1和xCode 6.1.1进行一个项目
当试图从值和时间刻度中生成秒时,我会收到以下错误
PATH/ViewControllers/Camera/CaptureScreenViewController.swift:41:58: 'Int32' is not convertible to 'Int32'
在下面一行
var seconds = CMTimeMakeWithSeconds(Float64(value),timescale)
在,timescale)
以下是供参考的几行
var currentCellSegment = segmentForIndexPath(indexPath) var value = currentCellSegment.duration.value.value var timescale = currentCellSegment.duration.timescale.value var seconds = CMTimeMakeWithSeconds(Float64(value),timescale)
对如何修复有什么建议吗?或者回答为什么会发生这种事?
我试过的东西
我已经卸载了xCode,重新启动并重新安装了.
我已经尝试过像timescale as Int32这样的演员
var timescale = currentCellSegment.duration.timescale.value as Int32
var timescale: Int32 = currentCellSegment.duration.timescale.value
var timescale: Int32 = currentCellSegment.duration.timescale.value as Int32
,但是我收到了行var timescale...上的错误
由 @martin-r建议
新参考码
var currentCellSegment = segmentForIndexPath(indexPath) var value = currentCellSegment.duration.value var timescale = currentCellSegment.duration.timescale var seconds = CMTimeMakeWithSeconds(Float64(value),timescale)
解决了
发布于 2015-03-31 20:04:06
错误消息确实有点奇怪,但解决方案可能是删除不必要的.value调用:
var value = currentCellSegment.duration.value
var timescale = currentCellSegment.duration.timescale如果currentCellSegment.duration是一个struct CMTime,那么它的timescale属性就是CMTimeScale --又名Int32,这就是CMTimeMakeWithSeconds()所期望的。
value属性Int32返回一个Builtin.Int32,这将导致奇怪的错误消息。示例:
func abc(x : Int32) {
println(x)
}
let x = Int32(1)
abc(x) // OK
abc(x.value) // error: 'Int32' is not convertible to 'Int32'https://stackoverflow.com/questions/29377389
复制相似问题