Delegate란 무엇인가 설명하고, retain 되는지 안되는지 그 이유를 함께 설명하시오.

김지훈·2022년 4월 12일
0

iOS 면접

목록 보기
19/82

delegate란 객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하는 것이 아니라 처리해야 할 일 중 일부를 다른 객체에게 넘기는 것을 의미한다.

retain(유지하다) : 메모리가 해제되지 않아서 낭비되는 현상을 의미 (Memory Leak, 메모리 누수)
Delegate는 객체 간의 작업이여서 참조 값을 사용하기 때문에 retain 현상이 일어난다.

해결 방법
weak : 약한 참조
unowned : 약한 참조이고 해제된 메모리 영역에 재접근하지 않는다는 확신이 있을 때

0개의 댓글