Sobes.tech
Junior — Middle

Роли делегатҳо дар коди шумо чист ва барои чӣ истифода мешаванд?

sobes.tech AI

Ҷавоб аз 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("Тугмаи пахш шуд")
    }
}