从闭包为变量分配值-iOS Swift

时间:2019-06-30 17:17:33

标签: ios swift closures

我试图将Image(从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
}

1 个答案:

答案 0 :(得分:0)

我认为您可以通过在函数中使用转义参数来实现此目标,如下所示:

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
    })
}