无法使用 Swift 更新 Parse 中的图像文件列

Unable to update imagefile column in Parse using Swift

我在 table 视图中选择一个单元格,将值传递给视图控制器,然后允许用户使用以下代码更新 Parse 上的行(运行 在 Heroku 上)。

我面临的问题是 - "title" 列已更新,但图像文件列未使用所选的新图像进行更新。我可以看到新图像确实已传递到代码中。

我正在使用同步调用,因为不希望用户继续前进,除非记录已保存。

有什么问题吗?保存新对象的相同代码工作正常。

谢谢 阿希什

                let query = PFQuery(className:"class")
                query.whereKey("objectId", containsString: passedObject.objectId)

                do {

                    let results = try query.findObjects() 

                    if results.count == 0 {

                         print("error")

                        success = false

                     } else {
                        //update


                        do {

                            let obj = results.first

                            obj!["title"] = Title.text!

                            let imageData = UIImageJPEGRepresentation(imageOutlet.image!,0.2)
                            let imageFile = PFFile(name: "image.png", data: imageData!)


                            //try imageFile?.save() // is this needed?
                            obj!["imagefile"] = imageFile

                            try obj!.save()
                            self.success = true 


                        }  catch let er as NSError {

                            print(" error while updating - \(er)")
                        }

                     }
                } catch {

                    print("error while querying  \(error)")

                    success = false
                }

我 运行 在我这边进行了一些测试,这段代码对我有用:

异步版本

    let query = PFQuery(className: "FileTest")
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in

        let imageData = UIImageJPEGRepresentation(self.imageOutlet.image!, 0.2)
        let fileToSave = PFFile(name: "myfile.png", data: imageData!)

        let firstObj = objects?.first
        firstObj!["fileToSave"] = fileToSave
        firstObj!.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
            print("Object has been saved.")
        }


    }

同步版本

    let query = PFQuery(className: "FileTest")

    do {
        let objects = try query.findObjects()
        let firstObj = objects.first

        let imageData = UIImageJPEGRepresentation(self.imageOutlet.image!, 0.2)
        let fileToSave = PFFile(name: "myfile.png", data: imageData!)
        firstObj!["fileToSave2"] = fileToSave
        try firstObj!.save()
        print("object saved")


    } catch let er as NSError {
        print("error")
    }