2015-09-10 3 views
0

У меня есть массив objectIds = ["LlbAXkqOL4", "v7lSgUunbR"]Как получить объекты с массивом объектов Id в Parse

Если я только один идентификатор объекта, то я могу использовать,

query.getObjectInBackgroundWithId("A2332xsdas2") Поскольку у меня есть много ObjectIds, Я выполняю этот код:

let userQuery = PFUser.query() 
    userQuery?.whereKey("username", equalTo: self.user!.username!) 
    userQuery?.findObjectsInBackgroundWithBlock { 
     (object, error) -> Void in 
     if object != nil 
     { 
      for messageObject in object! { 
       self.importedArray = ((messageObject as! PFObject)["AllEventsId"] as? [String]!)! 
       println("importedArray = \(self.importedArray)") 
      } 
     } 
    } 


    var query:PFQuery = PFQuery(className: "Events") 
    query.whereKey("objectId", containedIn: self.importedArray) 
    query.whereKey("EventSTDTime", greaterThan: zDate) 
    query.findObjectsInBackgroundWithBlock { 
     (object, error) -> Void in 
     if object != nil 
     { 
      println(objects) 
     } 
    }  

Вот скриншот: screenshot

Но этот метод не работает, так как он выбрал все идентификаторы под классом Events

+0

Я не получить то, что проблема, которую вы столкнулись. Что вы подразумеваете под «не работает, поскольку он извлекал все id под классом Events». Пожалуйста, дайте более подробную информацию. – adolfosrs

+0

В классе 'Events', если у меня есть 10 строк, он извлекает все 10 строк, мне нужны только строки, в которых упоминается' objectId' am в массиве: 'objectIds' – AAA

+0

Его работа для меня. это importArray имеет правильные данные? – adolfosrs

ответ

4

Не знаете, почему ваш запрос возвращает всю информацию о классе. Но дело здесь в том, что методы анализа синтаксического анализа выполняются асинхронно, и вы не можете перебирать их.

Решение, которое может работать для вас является следующее:

var query:PFQuery = PFQuery(className: "Events") 
    query.whereKey("objectId", containedIn: objectIds) 
    query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 
       println(objects) 
    }) 
+0

не работает. говоря, что объектов не найдено. – AAA

+0

Вы уверены, что эти идентификаторы хранятся в вашей базе данных? не могли бы вы отредактировать свой вопрос с помощью sreenshot вашего таблицы синтаксического анализа? – adolfosrs

Смежные вопросы