我正在使用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()
})
试试这段代码。我希望它能对你有所帮助。
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
事实证明我所做的方式是正确的,但我通过代理工作,每当数据被发送到我的应用程序时,它没有返回完整的NSData。所以问题在于代理而不是代码。谢谢你的回复。
尝试使用以下代码片段
if let imageData = imageData
{
var newImage : UIImage! = UIImage(data: imageData!)
if image
{
myClass.imagem = newImage
}
}