如何从jsonplaceholder API解码和编码图像

时间:2016-04-26 03:02:38

标签: ios swift uiimageview base64 swifty-json

我想通过这个API http://jsonplaceholder.typicode.com/photos/3 显示来自tar: Must specify one of -c, -r, -t, -u, -x sh: line 1: --exclude=*/vendor: No such file or directory sh: line 2: --exclude=.git: command not found sh: line 3: -zvcf: command not found 的图片,由swiftyJson提供 我写了这段代码,但是返回nil

"url"

如何从API中提取图片? API中的所有图像都以相同的方式处理吗?

1 个答案:

答案 0 :(得分:1)

该代码有效吗?正如我从API http://jsonplaceholder.typicode.com/photos/3

的回复中看到的那样
{
  "albumId": 1,
  "id": 3,
  "title": "officia porro iure quia iusto qui ipsa ut modi",
  "url": "http://placehold.it/600/24f355",
  "thumbnailUrl": "http://placehold.it/150/1941e9"
}

基本上,您对此代码subDataJSON["url"].stringValue所做的就是检索" url"的值。节点,它将返回" http://placehold.it/600/24f355"。所以,我认为它不是你期望的base64字符串。而不是打电话

let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))

试试这段代码

let decodedData = NSData(contentsOfURL: NSURL(string: base64String))

但是,这可能会阻止您的UI线程,因为我们正在调用synchronized。更好的方法是

let dataTask: NSURLSessionDataTask = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: "")!) { (
            data, response, error) -> Void in
            if let imageView = self.MyImage {
                dispatch_async(dispatch_get_main_queue()) {
                    imageView.image = UIImage(data: data)
                }
            }

        };

        dataTask.resume()