델리게이트
- 하나의 객체가 모든 일을 처리하는 것이 아니라 처리해야 할 일 중 일부를 다른 객체에게 위임하는 것이다.
- 객체의 행동을 단순화시키고 객체 간 결합성을 최소화하는 장점이 있다.
- 델리게이트 패턴은 iOS 개발에서 자주 사용되는 디자인 패턴이다.
델리게이트 패턴 사용 예시
- 버튼 클릭 이벤트 처리
protocol ButtonDelegate {
func buttonTapped()
}
class ViewController: UIViewController, ButtonDelegate {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button.delegate = self
}
func buttonTapped() {
print("버튼 클릭!")
}
}
- 테이블 뷰
protocol TableViewDelegate {
func didSelectCell(at indexPath: IndexPath)
}
class ViewController: UIViewController, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("셀 선택: \(indexPath.row)")
}
}
delegate가 진짜로 엄청 심오한 주제인거 같아요..
이게 왜되지, 이게 왜 안되지 하는게 너무 많아서, 그때 그때 이해하면서 쓰고 있긴한데,
근데 정말 중요한 부분인건 맞는거 같아요!
오늘도 고생하셨습니다!