如何在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+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告