我的应用程序中有以下流程:
对于上面的第2步,我有:
var friendsUsernamesListArray: [String] = []
func loadFriendsUsernames()
{
let query = PFQuery(className:"FriendsConnections")
query.whereKey("appUsername", equalTo:PFUser.currentUser()!["appUsername"])
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil{
//print("Successful")
//print(objects)
self.friendsUsernamesListArray = objects![0]["friendsList"] as! NSArray as! [String]
}else{
print("Failure")
}
}
}
现在friendsUsernamesListArray的值是:
[“username1”,“username2”,“username3”]
我不知道第三部分是如何通过一个请求获得一个主要对象(以避免对上面数组中的每个用户名的单个请求)。我想要的可能就是这样:
User1 - > [姓名:XXXXX,年龄:20,电话号码:019282992]用户2 - > [名称: YYYY,年龄:22,编号:045527229]
感谢您的提前帮助
答案 0 :(得分:0)
找到答案并分享以供类似问题的未来参考:
解决方案是使用Parse PFQuery提供的containsIn关键字。
func loadFriendsInfo()
{
let query : PFQuery = PFUser.query()!
query.whereKey("appUsername", containedIn: self.friendsUsernamesListArray)
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil{
print(objects)
}else{
print("Getting Usernames Info Failure")
print(error)
}
}
}
以上代码有效且很乐意回答与之相关的任何问题。
答案 1 :(得分:0)
您也可以尝试这个(与之前的答案略有相似)
let query = PFQuery(className: "Users")
query.findObjectsInBackgroundWithBlock{(objects, error) -> Void in
if objects.count > 0 {
for object in objects {
for friend in self.friendsUsernamesListArray {
if object["username"] == friend {
//get objects info and add it to other things. E. g. object["email"]
}
}
}
}
}
如果有效,请告诉我。您可能需要为选项添加一些问题/感叹号。希望这可以帮助。