如何使用ObjectIds数组从Parse中检索用户数组?

时间:2015-04-23 21:16:36

标签: ios swift parse-platform

所以我目前遇到了一个需要从我的parse.com数据库中检索用户数组的问题。我有一个objectIds数组,我想查询以获得这些结果。

我在互联网上到处搜索,不幸的是没有一个解决方案有效。

我尝试创建一个查询关键字" objectId"的PFQuery,但由于某种原因,这不起作用(使用任何对象类型)。

此链接中还有一条建议:Suggestion Link On Parse Forums

我的快速代码设置与此类似,但我只是从解析中接收空白的PFUser。我调试了一下,似乎没有一个"伙伴"我的for循环中的对象是使用objectIds创建的。我甚至尝试过你手动设置它们。

我不知道我是否会犯这个错误,或者我的语法是关闭的。任何帮助,将不胜感激。谢谢!

func queryForPartners(partnerIds : [NSString])
{

    var query = PFQuery(className: "User")

    var tempArrayOfObjects : [PFObject] = []
    for partnerId in partnerIds
    {
        var partner: PFUser = PFUser.objectWithoutDataWithObjectId(partnerId as String)
        partner.objectId = partnerId as String
        tempArrayOfObjects.append(partner)
    }
    PFUser.fetchAllInBackground(tempArrayOfObjects, block: { (objects, error) -> Void in
        if error == nil {
            // The find succeeded.
            println("Successfully retrieved \(objects!.count) Users.")
            self.usersForCells.removeAll(keepCapacity: false)
            if let objects = objects as? [PFUser] {
                for object in objects {
                    self.usersForCells.append(object)
                }
            }

        } else {
            // Log details of the failure
            println("Error: \(error) \(error!.userInfo!)")
        }
    })
}

1 个答案:

答案 0 :(得分:0)

首先简化您的用户查询。这将查询您的用户类:

var query = PFUser.query()

在您的查询中,检查" objectId"对已存储的partnerIds数组的键。我假设partnerIds是一个字符串数组。这段代码基本上是这样说的:"检查你存储的每个用户。如果用户的objectId在partnerIds中,则返回它。"

query?.whereKey("objectId", containedIn: partnerIds)

运行您的查询:

query?.findObjectsInBackgroundWithBlock({ (NSArray objects, NSError error) -> Void in
        if error == nil {
            if let objects = objects {
                // Do something with your users
            }
        } else {
            println("An error occurred")
        }
    })