본문 바로가기
프로그래밍/Swift

@escaping

by Mr-후 2020. 11. 12.
반응형

뭔지도 모르고 엄청 썼군... ㅋㅋ

함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 때 클로저가 함수를 탈출(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) 
}

반응형

'프로그래밍 > Swift' 카테고리의 다른 글

Swift Protocol 정의  (0) 2021.07.09
UILabel Size Animation With layer.anchorPoint  (0) 2021.07.05
Swift 클로저, 다시 한번 정리  (0) 2020.11.12
@objc  (0) 2020.11.12
Swift의 where절  (0) 2020.11.12