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("დაწკაპუნდა ღილაკი")
    }
}