MVVM项目.如何连接模型视图到视图



我正在尝试制作一个应用程序,将显示我所在城市的天气。我使用MVVM架构,我有我的模型,ModelView和视图如下。我在WeatherModelView类中有一个变量我想在视图控制器中使用它:

标签。text = "(weatherViewModel.res?临时? ?-123年),

,但它不起作用。(https://i.stack.imgur.com/8BTEJ.png)视图控制器)(https://i.stack.imgur.com/qW54n.png)

它不会给出错误,它只是在标签上打印-123.0,这是展开后的nil情况。我希望它能打印出真实的天气。我不认为URL或JSON解码有问题。

这是我运行它时错误显示的内容:模拟器

In "viewdidload"fetchWeather"不完整。你需要set "label。text"完成后

改变你的视图模型

var res = WeatherModel? {
didSet {
resHasData?()
}
}
var resHasData?: (() -> Void)?

在最后一行添加我的代码"viewDidLoad">

weatherViewModel.resHasData = { [weak sekf] in
guard let self = self else { return } 
self.label.text = "(self.weatherViewModel.res?.main.temp ?? -123)"
}

好运。

最新更新