delegate

Jaby·2024년 3월 19일
0

SwiftBasic

목록 보기
13/20
post-thumbnail

델리게이트

  • 하나의 객체가 모든 일을 처리하는 것이 아니라 처리해야 할 일 중 일부를 다른 객체에게 위임하는 것이다.
  • 객체의 행동을 단순화시키고 객체 간 결합성을 최소화하는 장점이 있다.
  • 델리게이트 패턴은 iOS 개발에서 자주 사용되는 디자인 패턴이다.

델리게이트 패턴 사용 예시

  1. 버튼 클릭 이벤트 처리
// 프로토콜 정의
protocol ButtonDelegate {
  func buttonTapped()
}

// ViewController 클래스
class ViewController: UIViewController, ButtonDelegate {

  // 버튼 객체
  @IBOutlet weak var button: UIButton!

  override func viewDidLoad() {
    super.viewDidLoad()

    // 델리게이트 설정
    button.delegate = self
  }

  // 델리게이트 메서드
  func buttonTapped() {
    // 버튼 클릭 이벤트 처리
    print("버튼 클릭!")
  }
}
  1. 테이블 뷰
// 프로토콜 정의
protocol TableViewDelegate {
  func didSelectCell(at indexPath: IndexPath)
}

// ViewController 클래스
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)")
  }
}
profile
hello, world!

2개의 댓글

comment-user-thumbnail
2024년 3월 20일

delegate가 진짜로 엄청 심오한 주제인거 같아요..
이게 왜되지, 이게 왜 안되지 하는게 너무 많아서, 그때 그때 이해하면서 쓰고 있긴한데,
근데 정말 중요한 부분인건 맞는거 같아요!
오늘도 고생하셨습니다!

1개의 답글

관련 채용 정보