본문 바로가기

Swift

[Swift] Completion, Closure Excaping

Completion

Completion, CompletionHandling, CompletionBlock로 된 파라미터 이름을 iOS를 하면 많이 접합니다.

이러한 파라미터 들은 Closure를 파라미터로 받으며 함수가 반한된 후 (끝나고) Closure를 실행 시킵니다. 

 

Closure Escaping

추가적으로 Completion을 쓸 때 Escaping을 쓰기도 합니다.

 

Closure 타입 앞에 @escaping 이라고 적으면 됩니다.

함수가 반환된 후 실행되는 Closure. 함수의 Scope를 벗어나 외부에서 사용 가능합니다. 

(ex: 함수 내부에서 만들어진 Closure를 함수 외부에 따로 만든 배열에 넣고 추후 함수 외부에서 배열을 사용해서 함수 내부에서 만든 Closure를 사용 가능.) 

+ Closure에 capture된 값은 나가서도 쓸 수 있습니다.

 

그러기 때문에 함수 외부의 Scope로 빼낼 때도 사용 합니다. 탈출이라는게 Scope외부로 간다고 생각하면 쉽습니다.

 

 

 

 

 


 

'Swift' 카테고리의 다른 글

[Swift] compactMap, flatMap  (0) 2021.04.06
[Swift] struct, class - remind  (0) 2021.03.28
[Swift] First Class Type  (0) 2021.03.25
[Swift] Where, Switch, Binding  (0) 2021.03.24
[Swift] 정규식 (규식이)  (0) 2021.03.21