用于tableview的转换后的图像产生“在展开可选项时意外发现nil”

时间:2016-05-01 05:39:45

标签: ios swift uitableview uiimageview nsdata

当我从JSON中的GET请求中检索图像的所有信息时,我尝试将我正在获取的字符串转换为图像。它来到我作为base64字符串,我转换为NSData然后我尝试将它放在imageView但我不断得到一个“意外发现nil,同时展开可选”错误。我将NSData打印到我的控制台,然后在我的imageView行中打开它(显示它不是nil)并得到

的输出
d6ae5d4c be632efe 39fa8e9e f5cfc92c 7feb391c 16f7e7e9 eb5e7e2b 0fd0e6a8 51ba97dc 865c639e 39e9ed9e  >)

它的时间更长,但这只是为了提出一个想法。

这是我的代码,我遇到了问题:

//Convert image here
        let base64String = media[indexPath.row].image
        let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))
        print(decodedData)

        cell.mediaImageView.image = UIImage(data: decodedData!)

2 个答案:

答案 0 :(得分:1)

不要转换base64,直接转换你从响应中获得的图像中的数据。 希望这会有所帮助:)

答案 1 :(得分:0)

修正了它。火箭科学家我忘记添加一个占位符图像,如果进来的数据没有照片,并阻止单元格图像展开一个零值,这将导致我不断得到的错误。为将来遇到问题的人员更新了代码

//Convert image here
        let base64String = media[indexPath.row].image
        let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))

        if decodedData == nil {
            cell.mediaImageView.image = UIImage(named: "camera")
        } else {
            cell.mediaImageView.image = UIImage(data: decodedData!, scale: 0.9)
        }