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) 
}

반응형