Alamofire的使用教程( 三 )


文章插图
下面开始获取图片的的接口,同样的:
在的(::):下面添加以下代码
func downloadColors(contentID: String, completion: @escaping ([PhotoColor]) -> Void) {Alamofire.request("http://api.imagga.com/v1/colors",parameters: ["content": contentID],// 1.headers: ["Authorization": "Basic xxx"]).responseJSON { response in// 2.guard response.result.isSuccess else {print("Error while fetching colors: \(response.result.error)")completion([PhotoColor]())return}// 3.guard let responseJSON = response.result.value as? [String: Any],let results = responseJSON["results"] as? [[String: Any]],let firstResult = results.first,let info = firstResult["info"] as? [String: Any],let imageColors = info["image_colors"] as? [[String: Any]] else {print("Invalid color information received from service")completion([PhotoColor]())return}// 4.let photoColors = imageColors.flatMap({ (dict) -> PhotoColor? inguard let r = dict["r"] as? String,let g = dict["g"] as? String,let b = dict["b"] as? String,let closestPaletteColor = dict["closest_palette_color"] as? String else {return nil}return PhotoColor(red: Int(r),green: Int(g),blue: Int(b),colorName: closestPaletteColor)})// 5.completion(photoColors)}}
最后在(image:::)的 下面添加以下代码:
self.downloadTags(contentID: firstFileID) { tags inself.downloadColors(contentID: firstFileID) { colors incompletion(tags, colors)}}
运行项目,并且点击 按钮可以看到以下效果 。

Alamofire的使用教程

文章插图
【Alamofire的使用教程】项目地址: