- 사람으로 생각하자면-
해야할 일들을 나열해 놓고 대신할 사람을 찾는 방법
대신 해준 사람이 나에게 알려주면 여러가지 문제 해결
Delegate
위임하다, 대리자 라는 뜻을 가지고 있다.
객체 지향 프로그램이에서 델리케이트 패턴은 하나의 객체가 모든 일을 처리하는 것이 아니라
처리해야 할 일 중 일부를 다른 객체에게 넘기는 것을 뜻한다.
즉, 객체와 객체 간 쌍방향 커뮤니케이션의 방법이다.
delegate를 알려면 먼저 프로토콜을 알아야한다.
delegate는 프로토콜로 구현이 되기 때문이다.
프로토콜은 간단하게 서로간의 약속 이라고 생각
장점
프로토콜 사용으로 뛰어난 재사용성
프로토콜에 필요한 메소드들이 명확하게 명시되며 정보 전달도 가능
객체 지향 프로그래밍을 따름.(처리할 일의 일부를 다른 객체에게 위임함)
로직의 흐름을 따라가기 쉬움
단점
많은 줄의 코드가 필요.
delegate 설정에 nil이 들어가지 않게 주의해야함.(크래시를 발생 가능성)
많은 객체들에게 이벤트를 알려주는 것이 어렵고 비효율적임.
순서
1. Delegate는 '채택'작업을 진행. 프로토콜을 '선언'했다는 잘못된 말
2. 위임자를 정해주는 과정
3. 구현 (대신해주는 함수 선언)
class ViewController: UIViewController, UITextFieldDelegate {
...
}
이런식으로 클래스명 옆에 : 뒤에다가 사용하는 ~Delegate 를 적어주거나
extension ViewController: UITextFieldDelegate{
...
}
이런식으로 extension을 활용 할 수도 있다.
'iOS (스파르타)' 카테고리의 다른 글
무한스크롤~! (0) | 2024.08.08 |
---|---|
indexPath, 데이터소스와 델리게이트, 프로토콜선언 (0) | 2024.07.31 |
UserDefaults ,,, (0) | 2024.07.28 |
네비게이션컨트롤러 사용시 루트뷰로 돌아가기~ (0) | 2024.07.26 |
네비게이션 바,, 안보이게 하기..! (0) | 2024.07.26 |