ios - 从闭包中为变量赋值 - iOS Swift
问题描述
我试图将图像(从 API 下载)从闭包分配给一个变量。实现执行的闭包是转义闭包。
由于那是逃避关闭,我收到“在预期返回'UIImage的函数中缺少返回?'”
请建议如何解决这个问题
var posterPath: UIImage? {
get {
let url = posterData.medium[0].url
self.imageFor(for: url) { (image) in
return image
}
}
//returns error here as there is no return statement
}
解决方案
我认为您可以通过在函数中使用转义参数来实现这一点,如下所示:
func getTheImageFromApi(success: @escaping (_ image: UIImage) -> ()){
let url = posterData.medium[0].url
self.imageFor(for: url) { (image) in
success(image)
}
}
然后在您的视图控制器中使用此功能:
var posterPath: UIImage?
override func viewDidLoad() {
super.viewDidLoad()
getTheImageFromApi(success: { image in
self.posterPath = image
})
}
推荐阅读
- python - 用python绘制直方图
- html - CSS 元素没有正确对齐
- scala - play-json OWrites 用于 trait 中由同名对象实现的类
- python - 无法在 streamlit 中导入 fbprophet
- javascript - 在 jQuery 旋钮库中禁用舍入
- node.js - jest always called 0 times
- date - 以树枝格式将星期添加到日期
- python - 从标准输出退出读取python
- visual-studio-code - 如何在 Visual Studio Code 中隐藏此工具提示?
- mysql - MySQL 中的 WHERE IN 子句有限制吗?