我在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)投票总数来更新Parse,2)此最新投票的新平均值和3 )我想更新用户界面以显示此信息。
目前,这是我没有运气的尝试。这是错误的,并且不起作用,我将其从发布的其他问题以及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将触发将查找图像中的objectID的函数与Parse匹配。
我在查询Parse时遇到了问题,因此它更新了它所在的图像,因为我不知道如何更新该行。
有什么想法吗?非常感谢你......
PS,
由于问题的反馈,使事情变得更加清晰:
我不需要100000个objectIds。我只需要更新用户在特定图像上的相应行。
例如:如果用户在image783上并对图像进行投票并将该图像赋予" 7"作为评级,我想添加" 7"在" totalVotes"中的那一行解析后的image783,以便此图像现在有额外的7投票加到平均值/总数,最终影响该图像的总平均值和图像接收的总票数(我将计算Xcode文件中的平均值)。通过从Parse查询,最终将在UI上显示所有用户的总投票数和平均投票数。