티스토리 뷰
클로저에 대해서는 잘 알고 있다.
그럼 탈출 클로저는 무엇일까?
아무도 몰랐겠지만, @noescape을 명시적으로 써주지 않았어도, 디폴트 설정은 @noescape였다.
함수의 인자로 쓰이는 클로저는, 여느 함수 인자들처럼 함수 안에서만 접근이 가능했다.
하지만 @escaping을 써주게 된다면?!?!!? 함수의 외부에서도 클로저에 대해 접근할 수 있어진다.
var completionHandlers: [()->Void] = []
func someFunction(closure: @escaping ()-> Void ) {
completionHandlers.append(closure)
}
결론: escaping 클로저는 변수로 받은 클로저를 다른 변수에 저장해놓고, 나중에 콜 할 수 있다는 점에서 의의가 있다.

@escaping은 (당연히) 함수 타입에만 쓸 수 있다.
'macOS, iOS' 카테고리의 다른 글
| swift EOF까지 input 받아오기! (0) | 2019.12.06 |
|---|---|
| 스위프트에서 \.의 의미 ( WritableKeyPath ) (0) | 2019.12.05 |
| 아카이브 이후에 나오는 페이지 보는 법 (0) | 2019.11.30 |
| textFieldDelegate로 리턴버튼이나 textField 바깥 영역 눌렀을 때 keyboard dismiss (0) | 2019.11.22 |
| 카카오맵 왜 옵젝씨밖에 없냐 ㅡㅡ (0) | 2019.11.22 |