如何在 Swift(iOS)中延迟调用方法?

iosapps/applicationsmobile development

在本文中,我们将了解如何使用 Swift 延迟方法调用。这里我们将介绍两种实现方法。

那么,让我们开始吧。

我们将在 Playground 中看到示例。

步骤 1:打开 Xcode →新建 Playground。

在第一种方法中,我们将使用 asyncAfter(deadline: execute:) 实例方法,该方法会在指定时间安排一个工作项执行并立即返回。

您可以在此处阅读更多相关信息 https://developer.apple.com/documentation/dispatch/dispatchqueue/2300020-asyncafter

步骤 2 − 将以下代码复制到 Playground 并运行,

func functionOne() {
   let delayTime = DispatchTime.now() + 3.0
   print(&"one")
   DispatchQueue.main.asyncAfter(deadline: delayTime, execute: {
      hello()
   })
}
func hello() {
   print(&"text")
} functionOne()

这里我们创建一个 functionOne 函数,首先声明延迟时间为 3 秒。然后我们使用 asyncAfter 函数,将延迟时间作为参数传入,并要求在 3 秒后执行 hello() 函数。

如果我们运行上述程序,首先打印"one",然后在 3 秒后打印"text"打印。

第二种方法中,我们将使用 NSTimer。

您可以将以下代码复制到您的 Xcode 单视图应用程序中。

class ViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
      print("one")
      Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(ViewController.hello), userInfo: nil, repeats: false)
   }
   @objc func hello() {
      print(&"text")
   }
}

运行应用程序,您将看到相同的输出,打印一个文本,3 秒后打印文本。


相关文章