티스토리 뷰

부스트코스 - iOS

[Swift] Delegation

둥찬 2021. 7. 30. 23:55

Delegation Desgin Pattern

델리게이션 디자인 패턴은 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 기능을 제공

 

  • 델리게이션 디자인 패턴은 Foundation, UIKit, AppKit 그리고 Cocoa Touch 등 애플의 프레임워크에서 광범위하게 활용
  • 주로 프레임워크 객체가 위임을 요청하며, 프로그래머가 작성하는 커스텀 컨트롤러 객체가 위임을 받아 특정 이벤트에 대한 기능을 구현
  • 델리게이션 디자인 패턴은 커스텀 컨트롤러에서 세부 동작을 구현함으로써 동일한 동작에 대해 다양한 대응을 할 수 있게 한다.

 

UITextFieldDelegate

// 대리자에게 특정 텍스트 필드의 문구를 편집해도 되는지 묻는 메서드
func textFieldShouldBeginEditing(UITextField)
	
// 대리자에게 특정 텍스트 필드의 문구가 편집되고 있음을 알리는 메서드
func textFieldDidBeginEditing(UITextField)

// 특정 텍스트 필드의 문구를 삭제하려고 할 때 대리자를 호출하는 메서드
func textFieldShouldClear(UITextField)

// 특정 텍스트 필드의 `Return` 키가 눌렸을 때 대리자를 호출하는 메서드
func textFieldShouldReturn(UITextField)

 

데이터소스 (DateSource)

  • 델리게이트가 사용자 인터페이스 제어에 관련된 권한을 위임받고, 데이터소스는 데이터를 제어하는 기능을 위임받는다.
  • 많이 사용되는 데이터소스에는 UITableViewDataSource와 UICollectionViewDataSourcerk가 있다.

 

프로토콜 (Protocol)

  • 코코아터치에서 프로토콜을 사용해 델리게이션과 데이터소스를 구현할 수 있다.
  • 객체 간 소통을 위한 강력한 통신 규약으로 데이터나 메시지를 전달할 때 사용한다.
  • 프로토콜은 특별한 상황에 대한 역할을 정의하고 제시하지만, 세부기능은 미리 구현해두지 않는다.
  • 구조체, 클래스, 열거형에서 프로토콜을 채택하고 특정 기능을 수행하기 위한 요구사항을 구현할 수 있다.

'부스트코스 - iOS' 카테고리의 다른 글

[Swift] Xib 를 활용한 TableView 다루기  (0) 2021.08.09
[Swift] Singleton Pattern  (0) 2021.07.31
[Swift] Navigation  (0) 2021.07.27
[Swift] MVC 패턴  (0) 2021.07.25
[Swift] 프로그래밍 디자인 패턴  (0) 2021.07.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함