탈출 클로저에 대하여 설명하시오.

김지훈·2022년 4월 16일
0

iOS 면접

목록 보기
65/82
  • 원래 클로저가 탈출하면 안되는 이유

    • 클로저가 함수 내부에서만 쓰이기 때문에 컴파일러가 메모리 관리를 지저분하게 하지 않아도 돼서 성능이 향상함 non-escaping인 경우 함수가 종료됨과 동시에 클로저도 사용이 끝나지만 escaping의 경우 함수가 종료 되더라도 실제 클로저가 사용되지 않을 떄까지 메모리를 추적해야함
  • 탈출 클로저란 ?
    탈출 클로저는 매개변수로 받은 클로저가 함수 내부 스코프를 탈출해서 다른 어딘가로 가는것입니다.

  • 탈출 클로저를 사용하는 이유:
    함수 외부에서 클로저를 사용하기 위함. 보통 비동기 작업을 하기 위해 사용됨

ex) 서버에 이미지를 비동기적으로 요청하고 반환하는 함수에서 탈출클로저를 사용하지 않으면 빈데이터를 반환하고, 이미지가 업데이트 안될 수도 있음 (탈출클로저를 사용하지 않으면 함수 내부에서 클로저의 사용이 끝난다.)

클로저: 참조타입, 기본적으로 reference캡쳐

0개의 댓글