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?
✗ Incorrect
The @escaping keyword means the closure might be called after the function it was passed to has returned.
Which of these closures must be marked with @escaping?
✗ Incorrect
Only closures that outlive the function, like those stored for later use, must be marked @escaping.
What error occurs if you forget @escaping for a closure that escapes?
✗ Incorrect
Swift enforces @escaping at compile time to prevent misuse of closures.
Can a non-escaping closure be stored for later use?
✗ Incorrect
Non-escaping closures cannot be stored or used after the function returns.
Which keyword is used to mark a closure parameter that might escape?
✗ Incorrect
The @escaping keyword marks closures that can be called after the function returns.
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.