Назад к вопросам
Junior — Middle
70
Какова роль делегатов в вашем коде и для чего они применяются?
Компании, где спрашивали
Touch Instinct
Ответ от нейросети
sobes.tech AI
Делегаты в iOS — это паттерн проектирования, который позволяет одному объекту передавать ответственность за выполнение определённых действий другому объекту. Это способ организовать обратную связь и коммуникацию между объектами без сильной связанности.
Роль делегатов:
- Позволяют объекту уведомлять другой объект о событиях.
- Обеспечивают кастомизацию поведения без наследования.
- Упрощают разделение ответственности.
Пример: UITableView использует делегат для обработки выбора ячейки. Класс, реализующий протокол UITableViewDelegate, получает уведомления о действиях пользователя.
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("Кнопка нажата")
}
}