更新Parse.com中的行

时间:2015-10-15 08:49:03

标签: ios swift parse-platform

如何在Parse.com上传一行?

这是我的查询代码:

func queryFromParse(){
        self.arrayOfDetails.removeAll()
        let query = PFQuery(className: "currentUploads")
        query.orderByDescending("createdAt")
        query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
            if error == nil
            {
                if let newObjects = objects as? [PFObject] {

                    for oneobject in newObjects {
                        let text = oneobject["imageText"] as! String
                        let username = oneobject["username"] as! String
                        let deviceID = oneobject["identifierForVendor"] as! String
                        let reportedCount = oneobject["reportedCount"] as! String
                        let time = oneobject.createdAt!

                        if let userImage = oneobject["imageFile"] as? PFFile {
                            let userImage = oneobject["imageFile"] as! PFFile

                            let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang
                            let OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!, deviceID: deviceID, reportedCount: reportedCount)
                            //let OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!)

                            self.arrayOfDetails.append(OneBigObject)

                            dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() }
                        }
                    }
                }
            }
        }
    }

Image here

我想在报告图像时更新“reportedCount”。我有一个我一直在使用的代码,但是在每个报告的另一个类中创建了新行,我只想更新“reportedCount”:

@IBAction func reportContentAction(sender: AnyObject) {
        let buttonPosition = sender.convertPoint(CGPointZero, toView: self.collectionView)
        let indexPath = self.collectionView.indexPathForItemAtPoint(buttonPosition)
        ////
        println(indexPath?.item)
        ////
        let post = self.arrayOfDetails[indexPath!.item]

        var alertMessage = NSString(format:"*User: %@\r *Text: %@\r *Created at %@", post.username, post.text, post.CreatedAt)

        var reportAlert = UIAlertController(title: "Report Content", message:alertMessage as String, preferredStyle: UIAlertControllerStyle.Alert)

        reportAlert.addAction(UIAlertAction(title: "Yes", style: .Default, handler: { (action: UIAlertAction!) in
            println("Handle Report Logic here")

            var currentUploads = PFObject(className: "banned")
            currentUploads["username"] = post.username
            currentUploads["imageText"] = post.text
            currentUploads["imageFile"] = post.image
            currentUploads["identifierForVendor"] = post.deviceID
            currentUploads["flaggedBy"] = PFUser.currentUser()?.username
            currentUploads["flaggedByUUID"] = UIDevice.currentDevice().identifierForVendor.UUIDString
            currentUploads.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
                if error == nil{
                    //**Success saving, now save image.**//
                    currentUploads.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in
                        if error == nil{
                            // Take user home
                            print("Data uploaded")
                            // Show UIAlertView
                            let alert = UIAlertView()
                            alert.title = "Message"
                            alert.message = "You report has been sent. Thank you for your support."
                            alert.addButtonWithTitle("Close")
                            alert.show()

                        }
                        else{
                            print(error)
                        }
                    })
                }
                else{
                    print(error)
                }
            })
        }))

        reportAlert.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: { (action: UIAlertAction!) in
            println("Handle Cancel Logic here")
        }))

        presentViewController(reportAlert, animated: true, completion: nil)
    }

1 个答案:

答案 0 :(得分:0)

您应该保留对oneobject的引用,或者更广泛地说,是对查询返回的所有objects的引用。现在当某些内容发生变化时,您可以从objects数组中获取相应的实例,然后更新并保存它以修改现有的“行”。