Sobes.tech
Junior — Middle

Ինչպե՞ս է տեղի ունենում տվյալների փոխանակումը և փոխազդեցությունը համակարգի շերտերի միջև սկզբից սկսած ծրագրի ստեղծման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

iOS հավելվածներում շերտերի միջև փոխազդեցությունը սովորաբար կառուցվում է ճարտարապետական նմուշների (MVC, MVVM, VIPER և այլ) համաձայն:

Տվյալների փոխանակումը տեղի է ունենում հետևյալ կերպ՝

  • Մոդելներ (Model): պահում են տվյալները և բիզնես-լոգիկան:
  • Նկարագրություններ (View): ցուցադրում են տվյալները օգտվողին:
  • Կառավարիչներ կամ ViewModel: կառավարում են տրամաբանությունը և կապում մոդելը նկարագրության հետ:

Տվյալները փոխանցվում են մեթոդների, դելեգատների, closures կամ ռեակցիվ գրադարանների (օրինակ, Combine, RxSwift) միջոցով:

Օրինակ՝ ViewModel-ը ստանում է տվյալները մոդելից և թարմացնում է View-ը binding կամ 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()
    }
}