Sobes.tech
Junior — Middle

როგორ ხდება მონაცემთა გაცვლა და ურთიერთქმედება სისტემის ფენებს შორის ნულიდან აპლიკაციის შექმნისას?

sobes.tech AI

პასუხი AI-სგან

iOS პროგრამებში, ფენებს შორის ურთიერთქმედება ჩვეულებრივ შენდება არქიტექტურული ნიმუშების (MVC, MVVM, VIPER და სხვა) მიხედვით.

მონაცემთა გაცვლა ხდება შემდეგი გზებით:

  • მოდელები (Model): ინახავენ მონაცემებს და ბიზნეს ლოგიკას.
  • ხედი (View): აჩვენებს მონაცემებს მომხმარებელს.
  • კონტროლერები ან ViewModel: მართავენ ლოგიკას და აკავშირებენ მოდელს ხედთან.

მონაცემები გადაეცემა მეთოდების, დელეგატების, closures ან რეაქტიული ბიბლიოთეკების (მაგ., Combine, RxSwift) საშუალებით.

მაგალითი: ViewModel იღებს მონაცემებს მოდელიდან და განაახლებს View-ს ბაინდინგის ან callback-ის საშუალებით.

class ViewModel {
    var dataUpdated: (() -> Void)?
    private var data: [String] = [] {
        didSet {
            dataUpdated?()
        }
    }
    func fetchData() {
        // მონაცემების მიღება მოდელიდან
        data = ["Item1", "Item2"]
    }
}

class ViewController: UIViewController {
    let viewModel = ViewModel()
    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel.dataUpdated = { [weak self] in
            // UI განახლება
            self?.tableView.reloadData()
        }
        viewModel.fetchData()
    }
}