【问题标题】:UIImage not converting NSData properlyUIImage 没有正确转换 NSData
【发布时间】:2015-09-23 12:39:41
【问题描述】:

我正在开发一个使用 Parse 作为后端的应用程序。每当我尝试加载图像时,我得到的 NSData 不是空的,但每当我尝试将其转换为 UIImage 时,我得到的图像是 nil

我已经检查了 Parse 上的所有图像,并且可以从数据库中查看/获取所有图像。我还重新上传了图像,以防万一它们有问题。

这是我获取 NSData 并将其转换为 UIImage 的一段代码:

let myImage = object.objectForKey("imagem") as! PFFile
myImage.getDataInBackgroundWithBlock({(imageData : NSData?, error : NSError?) -> Void in
                if error == nil {
                    if let imageData = imageData{
                            if let newImage = UIImage(data: imageData){
                                myClass.imagem = newImage
                            }    
                        }
                    }
                    self.collectionView?.reloadData()
                })

【问题讨论】:

  • 您是如何将图像转换为数据的?
  • 你在哪里检查图像是否为零? getDataInBackgroundWithBlock() 是一个异步函数,可能会导致您的观察。检查图像时该功能未完成。因此,请提供您检查图像是否为零的信息。
  • 每当我在 Parse 上上传图像时,我猜它都会被转换。我已经成功完成了几次这个过程。
  • 这要么是您如何检查图像是否为零的问题,要么是您如何首先保存图像的问题。无论哪种方式,问题都不在于这段代码。
  • 我将 NSData 打印到日志中,还创建了一个 if(imageData != nil)。我得到了 NSData,但每当我将其转换为 UIImage 时,它​​都是 nil

标签: ios swift parse-platform uiimage nsdata


【解决方案1】:

试试这个代码。希望对你有帮助。

let userImageFile = anotherPhoto["imageFile"] as PFFile

userImageFile.getDataInBackgroundWithBlock 
{
    (imageData: NSData?, error: NSError?) -> Void in
    if error == nil 
    {
        if let imageData = imageData 
        {
           let image = UIImage(data:imageData)
        }
    }
}

更多细节可以参考解析文档。看到这个https://www.parse.com/docs/ios/guide#files-images

【讨论】:

    【解决方案2】:

    事实证明我的做法是正确的,但我正在通过代理工作,每当数据被发送到我的应用程序时,它并没有返回完整的 NSData。所以问题出在代理而不是代码上。感谢您的回复。

    【讨论】:

      【解决方案3】:

      尝试使用以下代码 sn-p

      if let imageData = imageData 
      {
       var newImage : UIImage! = UIImage(data: imageData!)
       if image
       {
         myClass.imagem = newImage 
       } 
      }
      

      【讨论】:

        猜你喜欢
        • 2011-09-22
        • 1970-01-01
        • 2010-12-21
        • 2011-09-23
        • 2013-11-29
        • 2015-11-24
        • 2015-06-13
        • 2014-09-19
        相关资源
        最近更新 更多