본문 바로가기
프로그래밍 언어/Swift

IOS Delegate 패턴

by zieunee 2018. 11. 25.
반응형

Delegate 란? 


어떤 객체가 하는 일을 부분적으로 확장해서 대신처리 하는 것

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

대신 처리해줄 객체 / 처리 하라고 시킨 객체 


만약 ? 고객이 여러 곳에서 사용할 수 있는 메세지 창을 하나만든다면? 

-> 메세지 창에 버튼이 있고 누르면 뷰컨트롤러는 무슨 버튼이 눌렸는지 체크를 해서 -> 버튼 이벤트가 발생하면 일을 처리한다.


선언을 한 후에 

viewDidLoad()함수에 textField.delegate = self를 쓰게 되는데 

이 의미는 대리가자 누군지 알려주는 과정이다. textfield의 일은 내가(viewController)가 할게 라는 의미 -> 너한테 이벤트 발생하면 알려줄게! 라는 의미


https://zeddios.tistory.com/8?category=682195




왜 사용할까?


ex> 고객이 어디서든 메세지 박스를 띄우고 눌렀을때 어떤 작업을 처리할수 있게 해달라고 했음 -> 그 작업을 메세지 박스 내에서 처리해주려고 한다. 그런데 메세지박스를 쓰는 부분마다 처리해야할 내용이 다 다르다면? 


 메세지박스를 쓰는 부분마다 처리해야할 내용이 다르면 -> 똑같이 생긴 메세지박스를 여러가 만들어서 처리해야한다. 물론 상속을 받아 처리할 수 있지만 클래스가 늘어난다. 

하지만 델리게이트 패턴을 사용한다면 ? 메세지 박스는 대신 일을 처리할 델리게이트 구현객체에 대해 따로 신경쓰지 않아도 된다. 

https://magi82.github.io/ios-delegate/

반응형

'프로그래밍 언어 > Swift' 카테고리의 다른 글

swfit 실습 day02  (0) 2020.02.01
swift 기본 문법  (0) 2020.01.31
Swift 언어란?  (0) 2018.11.25
swift 기본 문법  (0) 2018.11.19