从GET请求获取图像并将其存储

时间:2019-01-30 14:29:18

标签: ios swift image closures

我正在研究获取食谱的应用程序。 我对API进行GET请求,获取JSON,进行解析,一切都很好。 我得到图像的名称,成分列表和URL,因此我正在请求图像,但是我不知道如何从封闭中获取她。 我试图从封闭处放出她的属性,但是当我处于封闭状态时,属性没有被初始化。 因此,我真的不知道该如何从关闭中获取该图像。

这是我的代码,谢谢!

private func storeRecipes(for recipeData: RecipeResponse) {
    var image = UIImage()

    for recipe in recipeData.matches {
        let imageUrl = self.modifyUrl(recipe.smallImageUrls[0])

        self.getImage(for: imageUrl) { (data) in
            guard let imageData = data else {
                return
            }
            image = UIImage(data: imageData)!
        }
        let recipefinished = Recipe(name: recipe.recipeName, ingredients: recipe.ingredients, image: image)
        RecipesList.recipes.append(recipefinished)
    }
}

private func getImage(for url: URL, completionHandler: @escaping ((Data?) -> Void)) {
    let url = url

    Alamofire.request(url).responseData { (response) in
        guard response.result.isSuccess,
            let data = response.data else {
                completionHandler(nil)
                return
        }
        completionHandler(data)
    }
}

0 个答案:

没有答案