Sobes.tech
Junior — Middle

Kuidas toimub andmete vahetamine ja süsteemi kihtide vahelise koostöö nullist rakenduse loomisel?

sobes.tech AI

Vastus AI-lt

iOS rakendustes katmali koostöö on tavaliselt üles ehitatud arhitektuurimustrite (MVC, MVVM, VIPER jms) järgi.

Andmete vahetamine toimub läbi:

  • Mudelite (Model): salvestavad andmeid ja äriloogikat.
  • Vaadete (View): kuvavad andmeid kasutajale.
  • Kontrollerite või ViewModel: haldavad loogikat ja ühendavad mudeli vaatega.

Andmed edastatakse meetodite, delegaatide, closures või reaktiivsete raamatukogude (näiteks, Combine, RxSwift) kaudu.

Näide: ViewModel saab andmed mudelist ja uuendab View bindingu või callbacki kaudu.

class ViewModel {
    var dataUpdated: (() -> Void)?
    private var data: [String] = [] {
        didSet {
            dataUpdated?()
        }
    }
    func fetchData() {
        // Andmete saamine mudelist
        data = ["Item1", "Item2"]
    }
}

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