timerDispatchSourceTimer

timerDispatchSourceTimer

基本上,我正在制作一个从在线获取数字的应用程序(使用json),我想知道的是如何每隔5秒钟左右重新加载一次数据。我已经将其设置为在名为getData()的函数中,并且我认为在无限的while循环中将其像这样工作:while 1 > 0 { getData() sleep(5)}但是,每当我启动该应用程序时,它就会崩溃。 (当我在没有无限循环的情况下调用getData()时,它可以工作)我是否缺少某些东西?如何每5秒刷新一次json数据?谢谢!

最佳答案

除了这些,您还可以使用:

var timerDispatchSourceTimer : DispatchSourceTimer?

您可以在ViewWillAppear中调用函数并根据需要设置延迟:
timerDispatchSourceTimer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.main)
timerDispatchSourceTimer?.scheduleRepeating(deadline: .now(), interval: .seconds(YOUR DELAY TIME))
timerDispatchSourceTimer?.setEventHandler{
            // do something here
  self.performSelector(inBackground: #selector(YOUR FUNCTION), with: nil)
        }
timerDispatchSourceTimer?.resume()

并且在viewwillDisAppear上:
timerDispatchSourceTimer?.cancel()

关于ios - 如何在Swift中从同一站点重新加载新的JSON数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47234215/

10-11 14:57