0
0
Swiftprogramming~5 mins

Escaping closures (@escaping) in Swift - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is an escaping closure in Swift?
An escaping closure is a closure that can outlive the function it was passed to. It means the closure can be called after the function returns, often stored or used asynchronously.
Click to reveal answer
beginner
Why do we need to mark a closure with @escaping in Swift?
We mark a closure with @escaping when the closure is stored or called after the function returns. This tells Swift to keep the closure alive beyond the function's lifetime.
Click to reveal answer
intermediate
What happens if you try to use a non-escaping closure as escaping in Swift?
Swift will give a compile-time error because non-escaping closures are expected to be used only during the function execution, not after it returns.
Click to reveal answer
beginner
How do you declare a function parameter as an escaping closure in Swift?
You add the @escaping keyword before the closure type in the function parameter list, for example: func doSomething(completion: @escaping () -> Void) {}
Click to reveal answer
intermediate
Give a simple example of an escaping closure usage in Swift.
Example: func fetchData(completion: @escaping (String) -> Void) { DispatchQueue.main.asyncAfter(deadline: .now() + 1) { completion("Data loaded") } } This closure runs after the function returns.
Click to reveal answer
What does the @escaping keyword indicate in Swift closures?
AThe closure cannot be stored
BThe closure is optional
CThe closure runs immediately and only once
DThe closure can be called after the function returns
Which of these closures must be marked with @escaping?
AA closure stored in a property for later use
BA closure called immediately inside the function
CA closure passed as a parameter but never called
DA closure that returns a value immediately
What error occurs if you forget @escaping for a closure that escapes?
AWarning only
BCompile-time error
CRuntime crash
DNo error, code runs fine
Can a non-escaping closure be stored for later use?
ANo, it must be used during the function execution
BYes, always
COnly if marked optional
DOnly if it returns Void
Which keyword is used to mark a closure parameter that might escape?
A@inline
B@autoclosure
C@escaping
D@discardableResult
Explain what an escaping closure is and why Swift requires the @escaping keyword.
Think about when the closure runs compared to the function.
You got /3 concepts.
    Describe how to declare and use an escaping closure in a Swift function with a simple example.
    Consider a closure called after a delay or stored in a property.
    You got /3 concepts.