我正在使用以下代码每秒定期调用一个函数。问题是延迟实际上是 1.1 秒,并且最终会越来越漂移,这可以在 NSLogs 中看到(并且它在代码的其他部分以及除了 NSLog 之外的其他部分中也可见)。我做错了吗,还是应该使用计时器?
private func updateTimeCode() {
NSLog("Updating time")
//Some more code that doesn't take time
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) {
[weak self] in
self ? .updateTimeCode()
}
}
019-08-06 17:15:19.713234+0530 MyApp-Swift[8299:2685215] Updating time 2019-08-06 17:15:20.812652+0530 MyApp-Swift[8299:2685215] Updating time 2019-08-06 17:15:21.913188+0530 MyApp-Swift[8299:2685215] Updating time 2019-08-06 17:15:23.028814+0530 MyApp-Swift[8299:2685215] Updating time