【问题标题】:How to create an array of usersnames when working with Parse and Swift使用 Parse 和 Swift 时如何创建用户名数组
【发布时间】:2016-01-28 03:45:53
【问题描述】:

我正在尝试使用以下代码为所有用户名创建一个字符串数组并填充一个 TableViewController。

类 TableViewController: UITableViewController {

var randomUser = [String]()

override func viewDidLoad() {
    super.viewDidLoad()
    var query: PFQuery = PFUser.query()!
    query.findObjectsInBackgroundWithBlock {(objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil{
            if let objects = (objects as? [PFObject]!){
                for object in objects{
                        self.randomUser.append(object.objectForKey("username") as! String)
                    print(object.objectForKey("username") as! String)
                    print(self.randomUser.count)
                }
            }
        }
    }
    print(self.randomUser.count)
}

控制台中的输出:

0
username
1
username
2
username
3

但是 UItableview 没有填充。这可能是什么原因造成的? 我的猜测是查询被延迟并在返回数据之前创建了视图。感谢您的帮助!

【问题讨论】:

    标签: ios swift uitableview parse-platform


    【解决方案1】:

    是的,你是对的。得到查询结果后,需要拨打self.tableView.reloadData()。下面是一个调用它的例子。

    private var usersArray = [PFUser]()
    
    func fetchUsers() {
        let userQuery: PFQuery = PFUser.query()!
    
        userQuery.orderByAscending("username")
        userQuery.whereKey("username", notEqualTo: (currentUser?.username)!)
        userQuery.findObjectsInBackgroundWithBlock({
            (users, error) -> Void in
    
    
            if error == nil {
    
                self.usersArray = users as! [PFUser]
                self.tableView.reloadData()
            } else {
                print(error)
            }
        })
    }
    

    在本例中,您可以通过 usersArray[i].username 访问 username 属性

    【讨论】:

    • 天啊!非常感谢!你本来可以救我半天的!! :))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多