首先,要了解这个问题的背景,我们需要知道 Xcode 计时器的运作方式。当一个应用程序使用 Xcode 计时器时,它会创建一个 NSTimer
实例,该实例会在指定的时间间隔(称为 interval
)触发一次回调函数。如果在该时间间隔内再次调用 start
方法,则会重新计时,直到该间隔结束。
根据你提供的信息,每次调用 start
方法后,计时器会计算 2 秒,然后输出 "2秒"。这可能是由于你在代码中每次调用 start
方法时,都重新设置了计时器的 interval
属性。因此,每次调用 start
方法时,计时器都会重新计时,输出 "2秒"。
为了解决这个问题,你可以尝试以下方法:
start
方法时,保留上一次调用的 interval
值,而不是每次都重新设置。例如:
let interval = 2.0
timer.invalidate()
timer = NSTimer.scheduledTimerWithTimeInterval(interval, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
这将确保计时器在上一次调用后继续计时,而不是每次调用时都重新计时。
interval
属性。如果你在某个地方设置了 interval
属性,并将其值设置为 2 秒,那么每次调用 start
方法时,计时器都会重新计时,输出 "2秒"。interval
属性,并且每次调用 start
方法时都没有重新设置 interval
属性,那么可能需要考虑计时器的实现方式是否有误。可以尝试使用其他计时器库,例如 SwiftUI 中的 Timer
,来验证是否是计时器实现的问题。希望这些方法能够帮助你解决问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云