델리게이트 패턴

Sunho·2022년 10월 12일
0

ios공부

목록 보기
4/8

기능을 처리할 객체를 델리게이트로 설정하고, 특정 이벤트가 발생할 때 이를 델리게이트에 의해 위임된 본래의 객체로 전달해주는 역할을 한다.


텍스트 필드

UItextFieldDelegate 프로토콜을 채택해주면 됨.
그런데 연결만한다고 끝나는게 아니라 델리게이트 메소드가 구현되어 있는 객체까지 의미. 특정이벤트가 발생하였을 때 텍스트 필드는 이를 알려주기 위해 델리게이트 메소드가 구현되어 있는 객체를 찾는다.

override func viewDidLoad(){
	//delegate setting
    self.tr.delegate= self

뷰 컨트롤러가 텍스트 필드의 델리게이트 객체로 지정되었다.
그 후 텍스트 필드가 변화할때마다 델리게이트 객체에서 찾아 호출. 델리게이트 객체에 지정된 메소드가 구현되어 있는지 확인. 그리고 메소드들이 실행시점에 맞춰 호출된다.

이미지피커 컨트롤러

func imagePickerControllerDidCancel(_ picker: UIImagePickerController){}
// 이미지 파커에서 이미지를 선택하지 않고 취소했을때 호출되는 메소드
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String:Any]){}
// 이미지 파커에서 이미지를 선택했을 때 호출되는 메소드.

extension

델리게이트 패턴은 최소 하나이상의 프로토콜을 구현해야하는데 한 클래스에서 다양한 객체의 델리게이트 패턴을 구현하다 보면 코드가 난잡해진다. >> 익스텐션을 통해 각각의 프로토콜 구현.

profile
앱개발자

0개의 댓글