iOS 如何为每个用户获取数据解析 Swift
Posted
技术标签:
【中文标题】iOS 如何为每个用户获取数据解析 Swift【英文标题】:iOS How to fetch data for each user parse Swift 【发布时间】:2018-04-17 06:41:07 【问题描述】:如何为我想要的用户获取数据。 为此,我想使用我写用户名的文本字段,以及将加载有关用户的所有信息的按钮。 现在我的代码从数据库加载所有用户:
let query = PFUser.query()
query?.findObjectsInBackground(block: (object, error) in
for objects in object!
let user = objects["username"] as! String
print(user)
)
我怎样才能为我想要的用户制作它?
【问题讨论】:
【参考方案1】:您可以像这样在本地过滤用户:
query?.findObjectsInBackground (objects, error) in
let users = objects as? [PFUser]
for object in (users!.filter $0.username == something )
// do something
但这是一个非常糟糕的主意,因为您的用户列表可能非常庞大,而且效率极低。如果您使用PFQuery
,您可能需要添加一个约束:
let query = PFUser.query()
query.whereKey("username", equalTo: something)
现在,当您拨打findObjectsInBackground
时,您只会得到相关结果。
【讨论】:
【参考方案2】:您正在object
中获取用户列表:
query?.findObjectsInBackground(block: (object, error) in
在
for
循环中放置一个where
子句,通过匹配您所需的用户名来获取单个用户:
for objects in object! where (objects["username"] as! String) == "Your_Text_Field.text"
print(objects)
let userName = objects["username"] as! String
print(userName)
如果您不想匹配确切的名称,而是想通过输入文本搜索来获取用户列表,那么您可以应用过滤器:
query?.findObjectsInBackground (object, error) in
if let users = object as? [PFUser]
let filteredUsers = users.filter $0.username.contains("Your_Text_Field.text")
print(filteredUsers)
【讨论】:
二元运算符'=='不能应用于'Any!'类型的操作数和“字符串” @Andrew,只需将objects["username"]
转换为String
。我已经更新了我的答案。以上是关于iOS 如何为每个用户获取数据解析 Swift的主要内容,如果未能解决你的问题,请参考以下文章
IOS 如何使用 Parse Swift 获取每个用户的个人资料图片