"Cannot convert value of type '()' to UIImage": Swift
"Cannot convert value of type '()' to UIImage": Swift
我正在尝试从 URL 加载 UIImage,然后通过闭包将该 UIImage 传回。
这是获取图像的代码:
func getImageFromData(_ imgURL:URL, completion: @escaping imageClosure) {
print("Download Started")
getDataFromUrl(url: imgURL) { data, response, error in
guard let data = data, error == nil else {
return
}
if let thisImage = UIImage(data: data) {
completion(thisImage)
}
}
}
func getDataFromUrl(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url) { data, response, error in
completion(data, response, error)
}.resume()
}
这是 imageClosure
typealias imageClosure = (_ thisImage:UIImage) -> Void
我也是这样打电话的
let thisImage:UIImage = myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
})
我在上面一行得到了错误:
Cannot convert value of type '()' to specified type 'UIImage'
您对 getImageFromData 的定义 returns Void(唯一成员也称为 Void 的类型,a.k.a 空元组,())。它没有 return 图片。
您需要在回调闭包中设置图像,而不是通过分配函数的不存在的 return 值。
这个函数getImageFromData
不是return值
编辑这个
let thisImage:UIImage = myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
})
对此
myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
let myImage:UIImage = thisImage
})
我正在尝试从 URL 加载 UIImage,然后通过闭包将该 UIImage 传回。
这是获取图像的代码:
func getImageFromData(_ imgURL:URL, completion: @escaping imageClosure) {
print("Download Started")
getDataFromUrl(url: imgURL) { data, response, error in
guard let data = data, error == nil else {
return
}
if let thisImage = UIImage(data: data) {
completion(thisImage)
}
}
}
func getDataFromUrl(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url) { data, response, error in
completion(data, response, error)
}.resume()
}
这是 imageClosure
typealias imageClosure = (_ thisImage:UIImage) -> Void
我也是这样打电话的
let thisImage:UIImage = myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
})
我在上面一行得到了错误:
Cannot convert value of type '()' to specified type 'UIImage'
您对 getImageFromData 的定义 returns Void(唯一成员也称为 Void 的类型,a.k.a 空元组,())。它没有 return 图片。
您需要在回调闭包中设置图像,而不是通过分配函数的不存在的 return 值。
这个函数getImageFromData
不是return值
编辑这个
let thisImage:UIImage = myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
})
对此
myAPIManager.getImageFromData(thisImageURL, completion: { (thisImage:UIImage) in
let myImage:UIImage = thisImage
})