Skip to main content


Showing posts from 2021

How to check the time taken by a method to execute the code in Swift?

CFAbsoluteTimeGetCurrent() returns absolute time measured in seconds. let startTime = CFAbsoluteTimeGetCurrent() doSomeWork() let difference = CFAbsoluteTimeGetCurrent() - startTime print(“Your method took \(difference) seconds") func doSomeWork() { //Write your code here } Official documentation:

Interview question which I faced during FAANG interview

    Programming question given to me at  leetcode.      Given two strings representing very large integer numbers ("123" , "30") return a string        representing the sum of the two numbers ("153").     The above question can be rephrased as:-            Add two numbers represented by strings            Sum of two large numbers            Add Two Very Large Number (out of range)            How to add two string numbers             Solution in Swift programming language: func add (first: String , second: String ) {         var input1 = first         var input2 = second                  var firstArray = Array (first)         var secondArray = Array (second)                  //both inputs should have same number of characters         var differenceOfCharacter = 0         if firstArray. count > secondArray. count {             differenceOfCharacter = firstArray. count - secondArray. count             ( 0 ..< differenceOfCharacter). forEach

DispatchGroup vs DispatchSemaphore in iOS (Swift)

  In this post, I will share my knowledge about how to synchronise async code in swift programming language. Puzzled? Let read it to clarify :) In my current project, I had to develop a solution where I need to  perform multiple api calls in a loop, but synchronously and application should not freeze . Initially, I tried with DispatchGroup, but this approach was successful only if I have to run all apis calls asynchronously. Let’s look at below code snippet which illustrate the difference between DispatchGroup and DispatchSemaphore. DispatchGroup: In below example, api.performSomeAction() will be executed concurrently. This method call api in asynchronous manner.     /// - parameter ids: Array of identifer which will pass to api's post data     private func insertData(ids: [String]) {                  let group = DispatchGroup()                  ///Method which will execute when below if loop completes // (When dispatch group is notified)         func completion() {