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


在这篇文章中,我们将了解如何使用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")
   }
}

运行应用程序,您将看到相同的输出,先打印“one”,3秒后打印“text”。

更新于:2019年10月23日

2K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.