Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 试图;暂停“;定时器和恢复它们_Ios_Swift - Fatal编程技术网

Ios 试图;暂停“;定时器和恢复它们

Ios 试图;暂停“;定时器和恢复它们,ios,swift,Ios,Swift,使用Swift中的SpriteKit和计时器,我试图创建一个功能,暂停游戏,并在正确的时间继续。我发现了一个很棒的来源,它展示了一个允许这样做的系统。在我的代码中,我有一个函数pauseGame,它应该允许我获取计时器失效的当前时间 func pauseGame(){ enemyTimer.invalidate() enemyTimer2.invalidate() changeSpeed.invalidate() rubyTimer.invalidate()

使用Swift中的SpriteKit和计时器,我试图创建一个功能,暂停游戏,并在正确的时间继续。我发现了一个很棒的来源,它展示了一个允许这样做的系统。在我的代码中,我有一个函数pauseGame,它应该允许我获取计时器失效的当前时间

func pauseGame(){
    enemyTimer.invalidate()
    enemyTimer2.invalidate()
    changeSpeed.invalidate()
    rubyTimer.invalidate()

    // 0.3 is the original delay time when the timers were created

    let calendar = Calendar.current
    let timeCaptured = calendar.date(byAdding: .nanosecond, value: Int(Int64(0.3 * Double(NSEC_PER_SEC))), to: Date())!
    let elapsedTime = timeCaptured.timeIntervalSince(Date)
    let remainingDelay = 0.3 - elapsedTime

}
我所要做的就是创建一个新的计时器,它的值为remaingdelay,但是我在上面遇到了一个错误

    let elapsedTime = timeCaptured.timeIntervalSince(Date)
正在说“无法将类型'(Date).type'的值转换为预期的参数类型'Date'”


有什么想法吗?感谢查看。

Date
是一个类,
Date()
返回初始化为“现在”的
Date
实例,您需要:

let elapsedTime = timeCaptured.timeIntervalSince(Date())

或者干脆
让elapsedTime=timeCaptured.timeintervalencesnow
。哇,真不敢相信这么简单!谢谢你的快速回复。但这不可能是正确的
timeCaptured
是“now”+几纳秒,因此从“now”计算
elapsedTime
只是上一行中添加到“now”的值。我明白了,您也可以使用timeCaptured.timeIntervalSinceNow,因为这几乎是一样的。谢谢分享