Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะเรียกวิธีการหลังจากล่าช้าใน Swift (iOS) ได้อย่างไร


ในโพสต์นี้ เราจะมาดูกันว่าคุณสามารถชะลอการเรียกเมธอดโดยใช้ Swift ได้อย่างไร ต่อไปนี้เราจะมาดูกันว่าคุณจะประสบความสำเร็จได้อย่างไรในสองวิธี

มาเริ่มกันเลย

เราจะเห็นทั้งสองตัวอย่างใน Playground

ขั้นตอนที่ 1 - เปิด Xcode →สนามเด็กเล่นใหม่

ในแนวทางแรก เราจะใช้วิธีอินสแตนซ์ 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()

ที่นี่เรากำลังสร้างฟังก์ชันหนึ่งฟังก์ชันหนึ่ง โดยที่แรกเราจะประกาศเวลาหน่วงเวลาซึ่งก็คือ 3 วินาที จากนั้น เรากำลังใช้ asyncAfter โดยที่เรากำหนดให้เวลาหน่วงเป็นพารามิเตอร์ และขอให้เรียกใช้ฟังก์ชัน hello() หลังจากผ่านไป 3 วินาที

หากเราเรียกใช้โปรแกรมข้างต้น พิมพ์ "หนึ่ง" ก่อน จากนั้น "ข้อความ" จะพิมพ์หลังจาก 3 วินาที

ในแนวทางที่สอง เราจะใช้ NSTimer

คุณสามารถคัดลอกโค้ดด้านล่างในแอปพลิเคชัน Xcode→Single View

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 วินาที