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 获取每个用户的个人资料图片

如何为“仅获取”的变量赋值?

iOS如何从解析Swift 4中获取值“布尔”

如何为每个客户端获取一个 DCOM 服务器

如何为用户输入文本时将动态创建的每个单元格设置按钮操作(Swift 4)?

应用程序启动后,如何为用户订阅主题以获取通知?