所以我目前遇到了一个需要从我的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!)")
}
})
}
答案 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")
}
})