반응형
카테고리 (Category) | 작성 날짜 (Write Date) | 최근 수정 날자 (Recent Write Date) | 작성자 (Writer) |
iOS | 2022.01.20. 23:11 | 2022.01.20. 23:11 | Dev.Yang |
델리게이트 (Delegate) 디자인 패턴은 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 기능을 제공합니다. 또한 특정 상황에서 대리자에게 메시지를 전달하고 그에 적절한 응답을 받기 위한 목적으로 사용이 됩니다.
- 델리게이션 디자인 패턴은 Foundation, UIKit, AppKit 그리고 Cocoa Touch 등 애플의 프레임워크에서 광범위하게 활용하고 있습니다.
- 주로 프레임워크 객체가 위임을 요청하며, (주로 애플리케이션 프로그래머가 작성하는) 커스텀 컨트롤러 객체가 위임을 받아 특정 이벤트에 대한 기능을 구현합니다.
- 델리게이션 디자인 패턴은 커스텀 컨트롤러에서 세부 동작을 구현함으로써 동일한 동작에 대해 다양한 대응을 할 수 있게 해줍니다.
델리게이트 (Delegate) 패턴을 이해하기 좋은 예제로는 UITextFieldDelegate 를 확인할 수 있습니다. 아래의 UITextFieldDelegate 처럼 사용자가 UITextField 선택하여 문구 편집을 시작하거나 종료하는 경우 대리자에게 메세지가 전달되어 해당 함수가 호출이됩니다.
func textFieldShouldBeginEditing(UITextField) -> Bool
func textFieldDidBeginEditing(UITextField)
func textFieldShouldEndEditing(UITextField) -> Bool
func textFieldDidEndEditing(UITextField, reason: UITextField.DidEndEditingReason)
func textFieldDidEndEditing(UITextField)
델리게이트 디자인 패턴 (Delegate Design Pattern) 추가적인 용어에 대한 부분은 아래와 같습니다.
- 프로토콜 (Protocol) - 작업에 대하여 수행해야 하는 작업 목록
- 전달자 (Sender) - 수신자에게 전달해야 하는 작업을 전달하는 객체
- 수신자 (Receiver) - 전달자로부터 전달받은 작업을 처리하는 객체
🚀 REFERENCE
반응형
'# 애플 [Apple] > iOS' 카테고리의 다른 글
[iOS] KVC (Key-Value Coding) (0) | 2022.01.25 |
---|---|
[iOS] KVO (Key-Value Observing) (0) | 2022.01.24 |
[iOS] Kakao 로컬(Local) API를 사용하여 좌표로 주소 변환하기 (0) | 2022.01.01 |
[iOS] 픽셀 (Pixel)과 포인트 (Point) (0) | 2021.12.05 |
[iOS] OperationQueue (0) | 2021.11.30 |
댓글