Swift 中获取 Timer 的时间间隔中剩余的时间

Pab*_*blo 1 swift

我有一个精灵使用计时器每 x 秒“射击”更多精灵:

self.shootingEngine = Timer.scheduledTimer(timeInterval: (Double(60)/Double(self.ratePerMinute)), target: self, selector: #selector(ShootingEnemy.shoot), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)

所以时间间隔定义为:

(Double(60)/Double(self.ratePerMinute)) // Let's say it is 2 seconds.
Run Code Online (Sandbox Code Playgroud)

时间间隔,在此示例中为 2 秒。它每 2 秒触发一次 shot() 方法。现在,我想弄清楚如何获取计时器再次运行 shot() 方法之前的剩余时间。例如,我想知道距离下一次 shot() 还剩 0.74 秒

我正在考虑使用这个:

NSDate().timeIntervalSince1970 * 1000
Run Code Online (Sandbox Code Playgroud)

将时间保存到变量中,然后找出与当前时间的差值。但是,我首先想检查是否有更简单的方法来避免存储另一个实例变量。

Coo*_*uin 5

let timeRemaining = shootingEngine.fireDate.timeIntervalSince(Date())
Run Code Online (Sandbox Code Playgroud)

如果您还有其他问题,请告诉我。祝你好运!