您好,我有一個 CollectionViewCell 檔案,我試圖在其中呼叫公共 func 配置單元。
這是功能
public func configureCell(with cellViewModel: CellViewModel) {
self.articleTitleLabel.text = cellViewModel.title
if let data = cellViewModel.imageData {
self.articleImage.image = UIImage(data: data)
} else if let url = cellViewModel.urlToImage {
URLSession.shared.dataTask(with: url) { [weak self] data, _, error in
guard let data = data && error == nil else { return }
cellViewModel.imageData = data
DispatchQueue.main.async {
self.articleImage.image = UIImage(data: data)
}
}
}
}
這是模型
struct CellViewModel {
let title: String
let urlToImage: String?
let imageData: Data? = nil
init(title: String, urlToImage: String) {
self.title = title
self.urlToImage = urlToImage
}
}
但我得到了錯誤:
對實體方法“dataTask”的呼叫沒有完全匹配
為什么?我怎樣才能修復我的代碼?
uj5u.com熱心網友回復:
urlToImage是 type String,但 datatask 需要 type 的引數URL。
您可以使用:
else if let stringurl = cellViewModel.urlToImage, let url = URL(string: stringurl){
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/490995.html
