Parse-запрос после определенной строки

Как я могу запросить после определенной строки, где objectId равен objectId, который я сохранил?

Это мой код запроса:

func queryStory(){
        let query = PFQuery(className: "myClassStory")
        query.whereKey("isPending", equalTo: false)
        query.limit = 1000
        query.orderByDescending("createdAt")

        query.findObjectsInBackgroundWithBlock { (posts: [PFObject]?, error: NSError?) -> Void in
            if (error == nil){
                // Success fetching objects

                for post in posts! {

                    if let imagefile = post["userFile"] as? PFFile {
                        self.userFile.append(post["userFile"] as! PFFile)
                        self.objID.append(post.objectId!)
                        self.createdAt.append(post.createdAt!)
                    }
                }
                print("Done!")
            }
            else{
                print(error)
            }
        }
    }

Это мой класс базы данных Parse:
Введите описание изображения здесь

Что я хочу, это только запросить элементы, которые были createdAt после objectId:woaVSFn89t. Как я могу это сделать?

2 ответа

  1. Перед тем как сделать переменную for-loop:

    var havePassedObjectId = false
    

    Затем внутри for-loop проверьте, равен ли текущий пост идентификатору объекта, который вы хотите:

    if post.objectid == "woaVSFn89t" {
    self.userFile.append(post["userFile"] as! PFFile)
     //Continue appending to arrays where needed  
    havePassedObjectId = true
    } else if havePassedObjectId == true {
       self.userFile.append(post["userFile"] as! PFFile)
       //Continue appending to arrays where needed  
    }
    

    Это проверит, если вы уже прошли объект и добавить все объекты после.

  2. Попробуйте отфильтровать найденные объекты:

    query.findObjectsInBackgroundWithBlock { (posts: [PFObject]?, error: NSError?) -> Void in
            if (error == nil){
                // Success fetching objects
    
                var thePostTime = NSDate()
    
                for post in posts! {
                    if post.objectId == "The Object Id You Were Trying To Find" {
                        thePostTime = post.createdAt!
                    }
                }
    
                for post in posts! {
    
                    if post.createdAt!.isGreaterThan(thePostTime) == true {
                        if let imagefile = post["userFile"] as? PFFile {
                            self.userFile.append(post["userFile"] as! PFFile)
                            self.objID.append(post.objectId!)
                            self.createdAt.append(post.createdAt!)
                        }
                    }
    
                }
    
                print("Done!")
            }
            else{
                print(error)
            }
        }
    

    Вы заметите, что я сравнил даты, используя это: сравнение NSDate с помощью Swift