इस पोस्ट में हम देखेंगे कि Swift का उपयोग करके मेथड कॉल को कैसे डिले करें। यहां हम दो तरीके देखेंगे।
तरीका 1: DispatchQueue.asyncAfter का उपयोग
हम asyncAfter(deadline:execute:) इंस्टेंस मेथड का उपयोग करेंगे जो निर्दिष्ट समय पर कार्य आइटम को एक्जीक्यूशन के लिए शेड्यूल करता है।
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 में डिले टाइम पैरामीटर के रूप में देकर hello() फंक्शन को 3 सेकंड बाद एक्जीक्यूट करने को कहते हैं।
तरीका 2: Timer का उपयोग
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" प्रिंट होगा।