Delegate Pattern
팀 프로젝트 시작 전 선행학습(챌린지 반 수업 과제)
델리게이트 패턴이란?
보통 Table View && Collection View 에서 많이 사용 됨
인스턴스가 특정 작업을 다른 인스턴스에 위임하여 처리 하도록 함 (짬처리 하는거 아닌가?)
암튼
프로토콜은 델리게이트가 수행해야 할 작업을 정의하고, 델리게이트 프로퍼티는 실제로 그 작업을 수행할 인스턴스를 참조 함
그렇게 이제 델리게이트를 사용하는 클래스는 특정 이벤트가 발생했을 때 델리게이트 메서드를 호출하고,
구현하는 클래스는 그 메서드를 실제로 구현하여 이벤트에 대한 처리를 수행 함
이론은 이게 끝임 코드를 한번 보자구
Delegate Pattern 예시
// 1. 프로토콜 정의
protocol ButtonDelegate: AnyObject {
func didTapButton()
}
// 2. 델리게이트를 사용하는 클래스
class Button {
weak var delegate: ButtonDelegate?
func tap() {
// 3. 델리게이트 메서드 호출
delegate?.didTapButton()
}
}
// 4. 델리게이트를 구현하는 클래스
class ViewController: UIViewController, ButtonDelegate {
let button = Button()
overrid func viewDidLoad() {
super.viewDidLoad()
button.delegate = self
}
}
// 6. 델리게이트 메서드 구현
func didTapButton() {
print("버튼이 눌렷서")
}
}
// 앱의 진입점 예시 (주로 AppDelegate or SceneDelegate에서 호출 됨)
let viewController = ViewController()
viewController.viewDidLoad()
viewController.button.tap()
'Swift' 카테고리의 다른 글
(CS) 네트워크 대비 지식쌓기 (1/2) (0) | 2024.07.07 |
---|---|
Xcode 내 휴대폰 연동 (0) | 2024.07.01 |
Swift Optional (0) | 2024.06.28 |
CoW (Copy - on - Write) (0) | 2024.06.27 |
Swift LifeCycle - 추가 예정 (미완) (1) | 2024.06.26 |