라벨이 delegate인 게시물 표시

[swift] Delegate 패턴 감잡기

이미지
[swift] Delegate 느껴보고 이해하기 delegate를 구현하다가, delegate에 대해 정리 해보는 기회를 가지면 좋을 것 같아서 좋은 예제를 보고 정리해놓는다. 정의 delegate를 사전에 검색해 보면 대리자, 위임자라고 나온다. delegate를 쓰면 무언가를 위임 받는 것 같다. 실제 사용되는 곳을 보면 프로토콜을 사용해서 무엇을 구현해야 하는지 제안한다. 간단한 예제 이름을 입력받아, 라벨에 출력해주는 앱을 제작한다. 구현방법은 다음과 같다. import UIKit class ViewController: UIViewController { @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() } @IBAction func buttonClicked(_ sender: Any) { nameLabel.text = textField.text; } } 버튼이 눌릴 때, nameLabel.text = textField.text; 하게 된다. 비슷한 기능을 delegate를 사용해서 구현해보자. UITextFieldDelegate TextField에서 일어나는 일에 대한 위임을 ViewController가 받아서 처리해보자. 일단 자 이제부터 이녀석 에게 일어나는 일은 내가 처리해줄게! 를 선언합니다. override func viewDidLoad() { super.viewDidLoad() textField.delegate = self # self는 ViewController입니다 } 간단하죠? textField의 위임자(delegate)는 self야 가 굉장히 직관적입니다. 그럼 그 다음에 textField