
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Call a Method After a Delay in Swift iOS
In this post, we will be seeing how you can delay a method call using Swift. Here we will be seeing how you can achieve the same in two ways,
So let’s get started,
We will be seeing both the example in Playground,
Step 1 − Open Xcode → New Playground.
In the first approach, we will be using asyncAfter(deadline: execute:) instance method, which Schedules a work item for execution at the specified time and returns immediately.
You can read more about it here https://developer.apple.com/documentation/dispatch/dispatchqueue/2300020-asyncafter
Step 2 − Copy the below code in Playground and run,
func functionOne() { let delayTime = DispatchTime.now() + 3.0 print("one") DispatchQueue.main.asyncAfter(deadline: delayTime, execute: { hello() }) } func hello() { print("text") } functionOne()
Here we are creating one function functionOne, where first we are declaring delay time which is 3 Seconds. Then we are using asyncAfter where we are giving the delay time as a parameter and asking to execute hello() function after 3 seconds.
If we run the above program first “one” prints then after 3 seconds “text” prints.
In the second approach, we are going to use NSTimer,
You can copy the below code in your Xcode→Single View application
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") } }
Run the application, you will see the same output, one is printed and after 3 seconds text is printed.