Sobes.tech
Junior — Middle

Jaká je role delegátů ve vašem kódu a k čemu slouží?

sobes.tech AI

Odpověď od AI

Delegáti v iOS jsou návrhovým vzorem, který umožňuje jednomu objektu předat odpovědnost za provedení určitých akcí jinému objektu. Je to způsob, jak organizovat zpětnou vazbu a komunikaci mezi objekty bez silného propojení.

Role delegátů:

  • Umožňují objektu upozornit jiný na události.
  • Poskytují přizpůsobení chování bez dědičnosti.
  • Zjednodušují rozdělení odpovědností.

Příklad: UITableView používá delegáta k zpracování výběru buněk. Třída, která implementuje protokol UITableViewDelegate, přijímá upozornění o akcích uživatele.

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čítko stisknuto")
    }
}