如何在 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 秒后打印文本。

