iOS如何为每个用户解析Swift获取数据

时间:2018-04-17 06:41:07

标签: ios swift parse-platform

如何为我想要的用户获取数据。 为此,我想使用我写用户名的文本字段,以及将加载有关用户的所有信息的按钮。 现在我的代码从数据库加载所有用户:

 let query = PFUser.query()
    query?.findObjectsInBackground(block: { (object, error) in
        for objects in object! {
            let user = objects["username"] as! String
            print(user)

        }

    })
  

我如何为我想要的用户制作它?

2 个答案:

答案 0 :(得分:2)

可以在本地过滤用户,如下所示:

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时,您只会获得相关结果。

答案 1 :(得分:1)

您将在object处获取用户列表:

query?.findObjectsInBackground(block: { (object, error) in
  

where循环中添加for子句,通过将您所需的用户名匹配为单个用户:

    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)
        }
    }