如何在Parse中执行“not in”查询

时间:2015-02-28 10:17:41

标签: ios swift parse-platform notin

我在Swift中构建了一种热门或非风格的应用程序,用户可以分别对图像进行投票:HOT,NOT和MAYBE。

每次用户访问图像时,他们都会通过点击IBAction进行投票,这会触发一个查询,显示来自Parse的总投票结果和总热门数,如下面的代码所示。

我打算有1000张图片。

我可以预加载与每个相应图像对应的一些objectID,然后当用户对图像进行投票时,数据已经从解析中预加载/查询了吗?我该怎么办呢?有人在我之前的问题中建议在Parse中使用NOT IN查询。如何在Parse中进行NOT IN查询以及如何进行此操作?

现在,我正在为每个ObjectID编写一个查询,该查询将从1000个不同的图像中获取1000个查询...显然不可扩展。

进一步的代码说明:

swipePosition变量只是一个计数器,用于计算用户所在的图像。存储的图像位于数组中,现在存储在Xcode上。也许如果它们存储在Parse中,它们也可以预加载?

(我只显示" hotButtonQuery"函数,但还有一个Not和Maybe buttonQuery函数。)

有没有办法简单地使用这个代码,以便它可以扩展?因为,截至目前,我无法扩展超过25张图片。

func hotButtonQuery() {
    if swipePosition == 0 {
        var query = PFQuery(className:"UserData")
        query.getObjectInBackgroundWithId("RlvK3GhfqE") {
            (userData: PFObject!, error: NSError!) -> Void in
            if error != nil {

                println(error)
            }

            else {
            userData.incrementKey("totalVotes", byAmount: 1)
            userData.incrementKey("hot", byAmount: 1)

                var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger

                var updateHotsUILabel = userData.objectForKey("hot") as NSInteger

                userData.saveInBackground()

                println("parse was updated!")

                self.totalVotesLabel.text = String(updateTotalVotesUILabel)
                self.totalHotsLabel.text = String(updateHotsUILabel)
            }
        }
    } else if swipePosition == 1 {
            var query = PFQuery(className:"UserData")
            query.getObjectInBackgroundWithId("30WlVtgurP") {
                (userData: PFObject!, error: NSError!) -> Void in
                if error != nil {

                    println(error)
                }

                else {
                    userData.incrementKey("totalVotes", byAmount: 1)
                    userData.incrementKey("hot", byAmount: 1)


                    var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger

                    var updateHotsUILabel = userData.objectForKey("hot") as NSInteger

                    //println(userData.objectForKey("totalVotes"))
                    //println("total HOTs:")
                    //println(userData.objectForKey("hot"))

                    userData.saveInBackground()

                    println("parse was updated!")


                    self.totalVotesLabel.text = String(updateTotalVotesUILabel)
                    self.totalHotsLabel.text = String(updateHotsUILabel)


                }
            }
    } else if swipePosition == 3 {
        var query = PFQuery(className:"UserData")
        query.getObjectInBackgroundWithId("5D6ARjk3xS") {
            (userData: PFObject!, error: NSError!) -> Void in
            if error != nil {

                println(error)
            }

            else {
                userData.incrementKey("totalVotes", byAmount: 1)
                userData.incrementKey("hot", byAmount: 1)


                var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger

                var updateHotsUILabel = userData.objectForKey("hot") as NSInteger

                //println(userData.objectForKey("totalVotes"))
                //println("total HOTs:")
                //println(userData.objectForKey("hot"))

                userData.saveInBackground()

                println("parse was updated!")


                self.totalVotesLabel.text = String(updateTotalVotesUILabel)
                self.totalHotsLabel.text = String(updateHotsUILabel)


            }
        }
    }

2 个答案:

答案 0 :(得分:1)

只需使用

Application.Worksheets("ABC").Cells(6, 86).Select
Application.SendKeys "^(v)", True

答案 1 :(得分:0)

Not In的一个例子:

    var query = PFUser.query()

    if (friendsFilter){
        var friendsRelation:PFRelation = PFUser.currentUser().relationForKey("friendsRelation")
        query = friendsRelation.query()
    }
    else{
        var friendsRelation:PFRelation = PFUser.currentUser().relationForKey("friendsRelation")
        var innerQuery = friendsRelation.query()
        query = PFUser.query()
        query.whereKey("username", doesNotMatchKey: "username", inQuery: innerQuery)