如何使用swift将PFFile转换为UIImage?

如何将PFFile转换为UIImage?

在这个代码中,应用程序正在从parsing中获取文件,现在我希望它显示在UIImageView上,但是我得到一个错误…

这是我的代码…

var ImageArray:UIImage = [UIImage]() var textArray:String = [String]() var query = PFQuery(className:"ClassName") query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in if error == nil { if let objects = objects as? [PFObject] { for object in objects { //this works fine self.textArray.append(object.valueForKey("Image")! as! String) //this does not work... self.ImageArray.append(object.valueForKey("Image")! as! PFFile) //I get an error that says PFFile is not convertible to UIImage. How do i convert it? } } } else { // Log details of the failure println("Error: \(error!) \(error!.userInfo!)") } 

PFFile是任何文件的parsing表示。 要获得“真实”的文件(图片),你需要调用getDataInBackgroundWithBlock 。 尝试一下:

 if let userPicture = object.valueForKey("Image")! as! PFFile { userPicture.getDataInBackgroundWithBlock({ (imageData: NSData!, error NSError!) -> Void in if (error == nil) { let image = UIImage(data:imageData) self.ImageArray.append(image) } }) } 

Swift 1.2+版本

  if let userPicture = PFUser.currentUser()!.valueForKey("Image") as? PFFile { userPicture.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in if error == nil { let image = UIImage(data:imageData!) self.ImageArray.append(image) }else{ print("Error: \(error)") } } } 

用Swift 3parsing。

  if let photo = obj.file as? PFFile { photo.getDataInBackground(block: { PFDataResultBlock in if PFDataResultBlock.1 == nil {//PFDataResultBlock.1 is Error if let image = UIImage(data:PFDataResultBlock.0!){ //PFDataResultBlock.0 is Data photoCell.attachedPicture.image = image } } }) }