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

Ios 如何从jsonplaceholder API解码和编码图像,ios,swift,uiimageview,base64,swifty-json,Ios,Swift,Uiimageview,Base64,Swifty Json,我想通过这个API 通过swiftyJson显示来自“url”的图像 我写了这段代码,但返回为零 var base64String = subDataJSON["url"].stringValue let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0)) self.MyImage.image = decodedIamge! as UI

我想通过这个API 通过swiftyJson显示来自
“url”
的图像 我写了这段代码,但返回为零

var base64String = subDataJSON["url"].stringValue
let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
self.MyImage.image = decodedIamge! as UIImage

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

该代码有效吗?从API的响应中可以看出

基本上,您在这段代码上所做的就是检索“url”节点的值,它将返回“”。因此,我认为它不是您期望的base64字符串。而不是打电话

let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
试试这个代码

let decodedData = NSData(contentsOfURL: NSURL(string: base64String))
但是,在调用synchronized时,这可能会阻塞您的UI线程。更好的方法是

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

非常感谢,它很有效!!但是我想问你,如果图像作为字符串保存在API中会怎么样?如何从base64解码到UIImage?因为我的朋友将为我编写API,他说图像将作为字符串返回,我应该解码以在我的应用程序中使用它,我该怎么做?是否有现成的带字符串图像的APi用于测试代码?下面是将图像编码为base 64字符串并将64字符串解码为image//UIImage to base 64字符串的代码让image:UIImage=yourImage;let imageData:NSData=UIImagePNGRepresentation(image)let base64String=imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)//将Base64字符串解码为UIImage let base64String=“base64String”;let decodedImageData=NSData(base64EncodedString:base64String,选项:。忽略未知字符)let decodedImage:UIImage=UIImage(数据:decodedImageData)
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()