所以我目前遇到了一个问题,我需要从我的 parse.com 数据库中检索一组用户。我有一个 objectId 数组,我想对其进行查询以获得这些结果。
我在互联网上到处搜索,遗憾的是没有一个解决方案有效。
我尝试创建一个查询键“objectId”的 PFQuery,但出于某种原因这不起作用(对于任何对象类型)。
此链接中还有一个建议:Suggestion Link On Parse Forums
我将我的 swift 代码设置为与此类似,但我只是从解析中收到空白的 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!)")
}
})
}
最佳答案
首先要简化您的用户查询。这将查询您的用户类别:
var query = PFUser.query()
在您的查询中,根据您已存储的 partnerId 数组检查“objectId”键。我假设 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")
}
})
关于ios - 如何使用 ObjectId 数组从 Parse 中检索用户数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29834464/