【发布时间】:2020-11-21 00:49:49
【问题描述】:
TableView 在设置模型数据(topRatedModel)之前重新加载,因此模型保持为零。我使用了主胎面,但它不起作用。我怎样才能解决这个问题 ?您可以在以下位置查看我的代码:https://github.com/melisaozturk/MVVM (主分支是最新的)
class MovieViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
let viewModel = MovieViewModel()
var topRatedModel: MovieTopRatedModel!
var nowPlayingModel: MovieNowPlayingModel!
var popularModel: MoviePopularModel!
override func viewDidLoad() {
super.viewDidLoad()
self.tableRegister()
self.viewModel.getTopRatedData(completion: { [weak self] response in
if let _ = self {return}
self!.topRatedModel = response
}, completionHandler: { [weak self] error in
if let _ = self {return}
})
self.viewModel.getNowPlayingData(completion: { [weak self] response in
if let _ = self {return}
self!.nowPlayingModel = response
}, completionHandler: { [weak self] error in
if let _ = self {return}
})
self.viewModel.getPopularData(completion: { [weak self] response in
if let _ = self {return}
self!.popularModel = response
}, completionHandler: { [weak self] error in
if let _ = self {return}
})
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
private func tableRegister() {
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.separatorStyle = .none
self.tableView.tableFooterView = UIView()
self.tableView.separatorStyle = .none
self.tableView.register(UINib(nibName: "MovieCell", bundle: nil), forCellReuseIdentifier: "MovieCell")
}
}
【问题讨论】:
标签: ios swift closures tableview codable