Sobes.tech
Junior — Middle

Aká je úloha delegátov vo vašom kóde a na čo sa používajú?

sobes.tech AI

Odpoveď od AI

Delegáti v iOS sú vzorom návrhu, ktorý umožňuje jednému objektu preniesť zodpovednosť za vykonanie určitých akcií na iný objekt. Je to spôsob, ako organizovať spätnú väzbu a komunikáciu medzi objektmi bez silného prepojenia.

Úloha delegátov:

  • Umožňujú objektu oznámiť inému o udalostiach.
  • Poskytujú prispôsobenie správania bez dedičnosti.
  • Zjednodušujú rozdelenie zodpovedností.

Príklad: UITableView používa delegáta na spracovanie výberu buniek. Trieda, ktorá implementuje protokol UITableViewDelegate, dostáva oznámenia o akciách používateľa.

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("Tlačidlo stlačené")
    }
}