如何在Parse中获取具有对象Id数组的对象

AAA*_*AAA 1 ios parse-platform swift

我有一个数组 objectIds = ["LlbAXkqOL4", "v7lSgUunbR"]

如果我只有一个对象id,那么我可以使用,

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)
        }
     }      
Run Code Online (Sandbox Code Playgroud)

这是截图: 截图

但是这个方法不起作用,因为它获取了类下的所有id Events

ado*_*srs 6

不确定为什么您的请求返回全班信息.但这里的要点是解析后台方法是异步运行的,你不能迭代它们.

可能适合您的解决方案如下:

var query:PFQuery = PFQuery(className: "Events")
    query.whereKey("objectId", containedIn: objectIds)
    query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
                println(objects)
    })
Run Code Online (Sandbox Code Playgroud)