Delegate라는 단어를 처음 만나면 되게 생소하다.
Delegate는 대신해서 움직여주는 역할이다.
protocol을 이용하여 다른 클래스에게 권한을 위임할 수 있다.
(protocol은 내부에 method, property를 선언하고 protocol을 상속받는 곳에서 protocol stubs를 사용할 수 있다.)
아무튼
delegate는 구성해 놓은 작업들을 대신해 주는 역할이다.
한 줄로 끝나는 delegate지만 한 번에 이해하기 어렵다..
쉽게 이해하기 위해서 예를 들어 살펴보자
내가 인기 있는 카페 여러 매장을 가지고 있는 사장이라고 가정해 보자. (상상만으로 즐겁네)
모든 카페에서 내가 직접 커피를 내리고 계산을 하는 것은 불가능하다.
따라서 아르바이트생이나 매니저들(대리자)을 구한 뒤 각 매장을 매뉴얼(내가 구현한 코드)대로 관리하게끔 하면 된다.
iOS앱을 만들 때 사용하는 tableview, collectionView에서 delegate를 상속받으면 cell이 선택되었을 때 실행되는 작업이 지금까지 당연하게 작동하는 건지 알았는데..
tableview.delegate = self
라는 코드가 권한을 넘겨주겠다는 의미였다니.. (소름)
# 참고한 사이트
'iOS > Swift 상식' 카테고리의 다른 글
KVO(Key Value Observing) 동작 방식 (0) | 2023.02.11 |
---|---|
Singleton 패턴 알아보기 (0) | 2023.02.05 |
Instance Method, Type Method (0) | 2023.02.04 |
Swift - String의 SubScript 접근 (0) | 2023.01.23 |
Swift - Optional (0) | 2023.01.23 |