0
votes

Ok, I have looked at questions like How do you access an object's fields from a Parse query result in Swift? but the answer is not working in Swift 3. With the following trying to get an image from the first PFObject in Parse I get the error:

Cannot convert value type NSData, NSError -> Void to expected PFDataResultBlock ?

var query = PFQuery(className: PARSE_CLASS!)
            query.order(byDescending: "createdAt")
            query.findObjectsInBackground {
                (objects, error) -> Void in

            if error == nil {
                //print(objects?.first?["testTxt"] as! NSString)
                //print(objects?.first?["testImg"] as! PFFile)

                let thumbnail = objects?.first?["testImg"] as! PFFile
                thumbnail.getDataInBackgroundWithBlock{(imageData: NSData?, error: NSError?) -> Void in
                    if error == nil {
                        if let image = UIImage(data: imageData!) {
//get image here

                        }
                    }
            }
        }

I have tried changing the type and everything. How can I store an image from Parse in recent Swift?

1

1 Answers

1
votes

You can try this:

if let validObjects = objects {
   for object in validObjects {
      let thumbnail = object["testImg"] as? PFFile
      thumbnail?.getDataInBackground (block: { (data, error) -> Void in
         //read image here
      }
   }
}