ในรุ่นก่อนหน้าของ Swift หนึ่งสามารถสร้างความล่าช้าด้วยรหัสต่อไปนี้:
let time = dispatch_time(dispatch_time_t(DISPATCH_TIME_NOW), 4 * Int64(NSEC_PER_SEC))
dispatch_after(time, dispatch_get_main_queue()) {
//put your code which should be executed with a delay here
}
แต่ตอนนี้ใน Swift 3 Xcode จะเปลี่ยนสิ่งต่าง ๆ 6 อย่างโดยอัตโนมัติ แต่แล้วข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น: "ไม่สามารถแปลงDispatchTime.now
เป็นค่าที่คาดหวังdispatch_time_t
aka UInt64
."
เราจะสร้างความล่าช้าก่อนที่จะรันลำดับของรหัสใน Swift 3 ได้อย่างไร
DispatchQueue.main.asyncAfter(deadline: when)