#codeindia

Published: 31 March 2022
on channel: #codeindia
125
15

#codeindia
There are several ways to escaping the closure:
Storage: When you need to preserve the closure in storage that exist in the memory, past of the calling function get executed and return the compiler back. (Like waiting for the API response)
Asynchronous Execution: When you are executing the closure asynchronously on dispatch queue, the queue will hold the closure in memory for you, to be used in future. In this case you have no idea when the closure will get executed.

In swift, closures can be defined as the self-contained block of code that can be passed in methods or used in our code. However, we can define two types of closures, i.e., escaping and non-escaping closures. In swift 5, closure parameters are non-escaping by default.
Closures can also be executed within the function body; if we require escaping closure, we can mark it as @escaping. Closures can capture and store references to any constants and variables from the context in which they're defined. This is known as closing over those constants and variables.
In this article, we will discuss escaping and non-escaping closures. We will also discuss why we should use escaping closures in our code.




Non-Escaping Closures
When we pass a closure as an argument to the function, the function executes the closure and returns the compiler. Here, as soon as the closure gets executed and execution ends, the passed closure goes out of the scope, and therefore, it has no more existence in the memory. The non-escaping closures transitions into the following states in their lifecycle span.

1. Closure gets passed as the function argument in the function call.
2. Function body gets executed.
3. The closure gets executed along with the function body.
4. The function returns the compiler back.




Completion Handlers

 common application of a closure is the completion handler. It works roughly like this:
You’re executing a lengthy task in your code, like downloading a file, making a calculation, or waiting for a webservice request
You want to execute some code when the lengthy task is completed, but you don’t want to “poll” the task continuously to check if it’s finished
Instead, you provide closure to the lengthy task, which it will call when the task is completed

EXAMPLE
import UIKit
let firstVC = UIViewController()
let nextVC = UIViewController()
firstVC.present(nextVC, animated: true, completion: nil)


firstVC.present(nextVC, animated: true, completion: { () in print("Done🔨") }) // Done🔨

From Swift 3.x, closure parameters are @nonescaping by default, It means closure will also be executed with the function body if you wanna escape closure execution mark it as @escaping.

#iphoneonly #iphoneography #shotoniphone #iphonephotography #iphone6 #iphonex #caseiphone #iphone7 #iphone5 #iphone7plus #iphone6s #iphonecase #iphone5s #iphone8plus #iphone8 #iphonephoto #iphone4 #iphone6plus #jualcaseiphone #caseiphone6 #caseiphone5 #iphoneasia #hdriphonegraphy #iphonexs #casingiphone #iphonemurah #iphonexsmax #caseiphonemurah #iphone6splus #customcaseiphone #iphonexr #iphonepic #caseiphone6plus #iphone4s #caseiphone7 #iphone11 #caseiphone4 #teamiphone #iphonese #jualiphone
#youtubechannel
#youtube
#youtuber
#youtubers
#subscribe
#youtubevideos
#sub
#youtubevideo
#like
#instagram
#viral #share #linkinbio #tiktok #youtubekids #newyoutuber #youtubesubscribers #subscribers #k #smallyoutubersupport #followforfollowback #subforsub #blogger #youtubemusic #comment #youtuberindonesia #newvideo #art #photography #instadaily #contentcreator #memes #twitch #trending #followback #youtubegamer #subs #youtubeindia #fortnite #followme


On this page of the site you can watch the video online #codeindia with a duration of hours minute second in good quality, which was uploaded by the user #codeindia 31 March 2022, share the link with friends and acquaintances, this video has already been watched 125 times on youtube and it was liked by 15 viewers. Enjoy your viewing!