Sobes.tech
Junior — Middle

Hogyan történik az adatok cseréje és az interakció a rendszer rétegei között egy alkalmazás nulláról való létrehozásakor?

sobes.tech MI

Válasz az MI-től

Az iOS alkalmazásokban a rétegek közötti interakció általában architekturális minták szerint épül fel (MVC, MVVM, VIPER stb.).

Az adatok cseréje a következő módokon történik:

  • Modellek (Model): tárolják az adatokat és az üzleti logikát.
  • Nézetek (View): megjelenítik az adatokat a felhasználónak.
  • Vezérlők vagy ViewModel: kezelik a logikát és összekapcsolják a modellt a nézettel.

Az adatok metódusok, delegáltak, closures vagy reaktív könyvtárak (pl. Combine, RxSwift) segítségével kerülnek átadásra.

Példa: A ViewModel adatokat szerez a modellből és a binding vagy callback segítségével frissíti a View-t.

class ViewModel {
    var dataUpdated: (() -> Void)?
    private var data: [String] = [] {
        didSet {
            dataUpdated?()
        }
    }
    func fetchData() {
        // Adatok beszerzése a modelltől
        data = ["Item1", "Item2"]
    }
}

class ViewController: UIViewController {
    let viewModel = ViewModel()
    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel.dataUpdated = { [weak self] in
            // UI frissítése
            self?.tableView.reloadData()
        }
        viewModel.fetchData()
    }
}