반응형
뭔지도 모르고 엄청 썼군... ㅋㅋ
함수의 전달인자로 전달한 클로저가 함수 종료 후에 호출될 때 클로저가 함수를 탈출(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 |