프로그래밍/Swift
@escaping
Mr-후
2020. 11. 12. 15:06
반응형
뭔지도 모르고 엄청 썼군... ㅋㅋ
함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 때 클로저가 함수를 탈출(Escape)한다고 표현.
클로저를 매개변수로 갖는 함수를 선언할 때 매개변수 이름의 콜론(:) 뒤에 @escaping키워드를 사용하여 클로저가 탈출하는 것을 허용한다고 명시.
//@escaping 예시
func requestSchoolGroupList(code: String, completionHandler:@escaping Result) {
비동기 작업을 실행하는 함수들은 클로저를 컴플리션 핸들러(Completion handler)전달인자로 받는데 비동기 작업으로 함수가 종료되고 난 후 호출할 필요가 있는 클로저를 사용해야 할 때 탈출 클로저(Escaping Closure)가 필요하다.
var completionHandler: [() -> Void] = []
func someFunctionWithEscapingClosure(complletionHandler: @escaping () -> Void) {
completionHandlers.append(completionHandler)
}
반응형