Sobes.tech
Junior — Middle

Jaka jest rola delegatów w twoim kodzie i do czego są używane?

sobes.tech AI

Odpowiedź od AI

Delegaci w iOS to wzorzec projektowy, który pozwala jednemu obiektowi przekazać odpowiedzialność za wykonanie określonych działań innemu obiektowi. To sposób na zorganizowanie informacji zwrotnej i komunikacji między obiektami bez silnego powiązania.

Rola delegatów:

  • Pozwalają obiektowi powiadamiać inny obiekt o zdarzeniach.
  • Zapewniają dostosowanie zachowania bez dziedziczenia.
  • Ułatwiają podział odpowiedzialności.

Przykład: UITableView używa delegata do obsługi wyboru komórki. Klasa implementująca protokół UITableViewDelegate otrzymuje powiadomienia o działaniach użytkownika.

protocol MyDelegate: AnyObject {
    func didTapButton()
}

class MyClass {
    weak var delegate: MyDelegate?

    func buttonTapped() {
        delegate?.didTapButton()
    }
}

class ViewController: UIViewController, MyDelegate {
    let myObject = MyClass()

    override func viewDidLoad() {
        super.viewDidLoad()
        myObject.delegate = self
    }

    func didTapButton() {
        print("Przycisk naciśnięty")
    }
}