Junior — Middle
Чӣ гуна мубодилаи маълумот ва ҳамкории байни қабатҳои системавӣ ҳангоми сохтани барнома аз сифр сурат мегирад?
sobes.tech AI
Ҷавоб аз AI
Дар барномаҳои iOS, алоқа байни қабатҳои одатан мувофиқи намунаҳои меъморӣ (MVC, MVVM, VIPER ва ғайра) сохта мешавад.
Маъзуроти маълумот тавассути:
- Моделҳо (Model): маълумотҳоро ва логикаи бизнесро нигоҳ медоранд.
- Намудҳо (View): маълумотҳоро ба корбар нишон медиҳанд.
- Контролерҳо ё ViewModel: логикаро идора мекунанд ва моделро бо намуд пайваст мекунанд.
Маълумот тавассути методҳо, делегатҳо, closures ё китобхонаҳои реактивӣ (масалан, Combine, RxSwift) интиқол дода мешавад.
Масалан: ViewModel маълумотҳоро аз модел мегирад ва тавассути 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()
}
}