Sobes.tech
Junior — Middle

Mi a szerepe a delegáltaknak a kódodban, és mire használják őket?

sobes.tech MI

Válasz az MI-től

Az iOS delegátok egy tervezési minta, amely lehetővé teszi, hogy egy objektum felelősséget adjon át egy másik objektumnak bizonyos műveletek végrehajtásáért. Ez egy módja annak, hogy visszacsatolást és kommunikációt szervezzünk az objektumok között anélkül, hogy szoros kapcsolatban lennének.

A delegátok szerepe:

  • Lehetővé teszik, hogy egy objektum értesítse a másikat eseményekről.
  • Testreszabást biztosítanak öröklés nélkül.
  • Egyszerűsítik a felelősségek megosztását.

Példa: A UITableView egy delegátot használ a cellák kiválasztásának kezelésére. Az a osztály, amely megvalósítja a UITableViewDelegate protokollt, értesítéseket kap a felhasználói műveletekről.

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("Gomb megnyomva")
    }
}