원하는 타이밍에 비동기 처리를 할 수 있게 해준다. 이게 무슨 말일까?? 각설하고 바로 예제를 보자. 1. Completion Handler 예제 모든 method에 completion 인자를 추가해주면, completion Handler를 사용하는 인자로 바꿀 수 있다. func A(completion: () -> ()) { ...10초 걸리는 작업.. completion() ...10초 걸리는 작업.. } func B() -> () { ...5초 걸리는 작업.. } //Completion Handler A(completion: B) // -> A가 호출되고 10초 뒤, B가 비동기로 실행된다. 그림으로 표현하자면 다음과 같다. A 함수 내부에 completion()을 적어둔 시점에서 B가 호출되며, ..
trailing closure
아래와 같이 closure을 인자로 보낼 때, 직접 method를 넣어 보내지 않고 { }을 통해 보낼 수 있다. //아래와 같은 함수의 경우 func A(task:() -> ()) { ... } func B() { ... } //기본 A(task: B) //Trailing Closure //이렇게도 사용할 수 있다! A() { () -> () in B() }