Appearance
Escaping Closures(@escaping)
A closure is said to escape
a function when the closure is passed as an argument to the function, but is called after the function returns.
When you declare a function that takes a closure as one of its parameters, you can write @escaping
before the parameter’s type to indicate that the closure is allowed to escape.
When you make the closure outlive the funciton scope and don't mark with @escaping
, you will get a compiler error.
swift
var completionHandlers: [() -> Void] = []
func someFunctionWithEscapingClosure(completionHandler: @escaping () -> Void) {
completionHandlers.append(completionHandler)
}