इस पोस्ट में, हम देखेंगे कि आप स्विफ्ट का उपयोग करके एक विधि कॉल को कैसे विलंबित कर सकते हैं। यहां हम देखेंगे कि आप इसे दो तरीकों से कैसे प्राप्त कर सकते हैं,
तो चलिए शुरू करते हैं,
हम दोनों उदाहरण खेल के मैदान में देखेंगे,
चरण 1 - Xcode खोलें → नया खेल का मैदान।
पहले दृष्टिकोण में, हम asyncAfter (समय सीमा:निष्पादित:) उदाहरण विधि का उपयोग करेंगे, जो निर्दिष्ट समय पर निष्पादन के लिए एक कार्य आइटम को शेड्यूल करता है और तुरंत वापस आ जाता है।
आप इसके बारे में यहाँ https://developer.apple.com/documentation/dispatch/dispatchqueue/23,00020-asyncafter
पढ़ सकते हैं।चरण 2 - नीचे दिए गए कोड को खेल के मैदान में कॉपी करें और चलाएं,
func functionOne() { let delayTime = DispatchTime.now() + 3.0 print("one") DispatchQueue.main.asyncAfter(deadline: delayTime, execute: { hello() }) } func hello() { print("text") } functionOne()
यहां हम एक फंक्शन फंक्शन वन बना रहे हैं, जहां पहले हम डिले टाइम घोषित कर रहे हैं जो कि 3 सेकंड है। फिर हम asyncAfter का उपयोग कर रहे हैं जहां हम एक पैरामीटर के रूप में देरी का समय दे रहे हैं और 3 सेकंड के बाद hello() फ़ंक्शन निष्पादित करने के लिए कह रहे हैं।
यदि हम उपरोक्त प्रोग्राम को पहले चलाते हैं तो पहले "एक" प्रिंट होता है और फिर 3 सेकंड के बाद "टेक्स्ट" प्रिंट होता है।
दूसरे दृष्टिकोण में, हम 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") } }
एप्लिकेशन चलाएं, आपको वही आउटपुट दिखाई देगा, एक प्रिंट हो गया है और 3 सेकंड के बाद टेक्स्ट प्रिंट हो गया है।