Sobes.tech
Junior — Middle

Milline on delegeerijate roll teie koodis ja milleks neid kasutatakse?

sobes.tech AI

Vastus AI-lt

iOS-i delegaadid on disainimuster, mis võimaldab ühel objektil üle anda vastutuse teatud toimingute täitmise eest teisele objektile. See on viis korraldada tagasisidet ja suhtlust objektide vahel ilma tugeva siduseta.

Delegaatide roll:

  • võimaldavad objektil teavitada teist sündmustest.
  • pakuvad käitumise kohandamist ilma pärimiseta.
  • lihtsustavad vastutuste jaotust.

Näide: UITableView kasutab delegaati, et töödelda rakkude valimist. Klass, mis rakendab protokolli UITableViewDelegate, saab teateid kasutaja tegevuste kohta.

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("Nuppu vajutatud")
    }
}