[iOS][Swift] escaping vs non-escaping 차이
이스케이핑 vs 논 이스케이핑함수와 클로저는 1급 객체이다. 변수에 저장하거나, 파라미터로 넘길 수 있다. 우리가 무심코 사용하고 있는 completion handler에서 escaping을 찾아볼 수 있는데, iOS의 많은 API 패턴에서 어떠한 동작이 끝났을 때에 대한 completion handler로 클로저를 넘긴다. 기본적으로 클로저는 @escaping (annotation) 를 붙이지 않고 함수의 파라미터로 넘겨지면, 함수의 scope 내에서만 동작하는 non-escaping 클로저로 사용된다. 함수의 동작이 끝나면 이 클로저는 더이상 사용되지 않는다. Escaping 어노테이션으로 클로저를 넘기면, 해당 함수가 종료되더라도 클로저를 사용할 수 있다. 즉 함수 밖으로 클로저가 탈출할 수 있다...
iOS
2018. 11. 21. 11:27