Swift - 根据数组值从 Parse 表中加载
Posted
技术标签:
【中文标题】Swift - 根据数组值从 Parse 表中加载【英文标题】:Swift - load from Parse table based on array values 【发布时间】:2015-12-19 09:48:01 【问题描述】:我的应用中有以下流程:
用户选择查看他的联系人列表 我从 FriendsConnection 表中加载与当前登录的用户(基本上是当前用户的朋友)匹配的朋友(用户名)数组。存储在数组中 对 Parse 中的 Users 类进行另一个数据库查询,以获取与本地存储的数组中的每个用户名相关的信息。将其存储在本地 使用联系人列表填充表格视图,单击后显示详细信息。对于上面的第 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 的值是:
[“用户名 1”、“用户名 2”、“用户名 3”]
我不确定如何执行第三部分以通过一个请求返回一个主要对象(以避免对上面数组中的每个用户名的单个请求)。我想要的可能是得到这样的东西:
User1 -> [姓名:XXXXX,年龄:20,号码:019282992] User2 -> [姓名: YYYY,年龄:22,号码:045527229]
提前感谢您的帮助
【问题讨论】:
【参考方案1】:找到答案并分享给未来类似问题的参考:
解决方案是使用 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)
上面的代码可以正常工作,很乐意回答与它相关的任何问题。
【讨论】:
【参考方案2】:你也可以试试这个(和之前的回答有点相似)
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"]
让我知道这是否有效。您可能需要为选项添加一些问号/感叹号。希望这可以帮助。
【讨论】:
以上是关于Swift - 根据数组值从 Parse 表中加载的主要内容,如果未能解决你的问题,请参考以下文章