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")
}
}