1

我正在 Swift 中构建一个评分应用程序,在其中存储图像的平均票数、总票数和 Parse 中的当前票数。我想在没有objectId的情况下更新行。

考虑到我有大约 1000 张图像,每次对该图像进行投票时,给每个图像一个 objectId + 查询 Parse 似乎有点太多了。

var userData = PFObject(className:"UserData")

    userData.setObject(0, forKey: "imageNumber")
    userData.setObject(0, forKey: "totalVotes")
    userData.setObject(0, forKey: "Average")


    userData.saveInBackground()

对于每次用户通过点击 IBAction 对图像(1-10)进行投票时,我想通过增加 1)总投票数、2)最新投票的新平均值和 3)我想要更新 Parse更新用户界面以显示这一点。

现在,这是我没有运气的尝试。这是错误的并且不起作用,我基于发布的其他问题以及 Parse 文档中的问题。

这就是我现在所拥有的:

 @IBAction func one(sender: UIButton) {
   //This is "one" vote. There are 9 more IBActions that do the exact same thing

   //Here is where I would update the labels on the UI
   // I would also have a function that is triggered to update parse based on this increment to the total # of votes and the average. 
   // This would also update the UI based on the votes received, querying the data from Parse. 
}

    func updateParse() {
        var randNumber = Int32()

        counter = 0
        counter++

    var query = PFQuery(className:"UserData")
        query.countObjectsInBackgroundWithBlock  {
            (count: Int, error: NSError!) -> Void in
            if error == nil {
                randNumber = arc4random_uniform(count)
                query2.whereKey("ImageNumber", equalTo:randNumber)
                query2.getFirstObjectInBackgroundWithBlock {
                    (userData: PFObject!, error: NSError!) -> Void in

                    if error != nil {
                       println(error)
                    } else {
                        let votes = userData["totalVotes"] as Int

                    }
                }
            }

}
    }

我试图找到一个与图像编号匹配的数字,以便根据用户使用的图像,当用户点击投票时,IBaction 将触发该函数将查找图像与 Parse 匹配的 objectID。

我在查询 Parse 以更新它所在的图像时遇到问题,因为我不知道如何仅更新该行。

有任何想法吗?太感谢了...

PS,

多亏了问题的反馈,让事情变得更清楚:

我不需要 100000 个 objectId。当用户在特定图像上时,我只需要更新相应的行。

例如:如果用户在 image783 上并对该图像进行投票并将该图像评为“7”作为评分,我想在解析时将“7”添加到 image783 的“totalVotes”中的该行,以便该图像现在具有平均/总数增加了 7 票,最终影响该图像的总平均数和图像收到的总票数(我将计算 Xcode 文件中的平均值)。总票数和所有用户的平均票数最终将通过 Parse 查询显示在 UI 上。

4

0 回答 0