如何在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”。
廣告