查询后没有填充表视图(PFQuery)

时间:2015-04-05 01:44:20

标签: ios objective-c swift parse-platform

我似乎无法让这个工作。我有一个数组users,它应该保存Parse数据库中保存的所有用户。在查询中,用户从解析中填充PFUsers。例如,如果我println(self.users),它会正确显示数据库中的所有用户。但是,它没有用它们填充表格,如果我在任何表函数中执行相同的println(self.users),它将显示为空数组。此外,如果我最初用users = [“X”,“Y”,“Z”]填充数组,那么查询将删除这些值并从Parse插入用户,然后表格将输入初始的X,Y和Z值。这让我发疯了。

import UIKit

class receivers: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var tableView: UITableView!

    var users = [""]

    override func viewDidLoad() {
        super.viewDidLoad()

        var query = PFUser.query()

        query.findObjectsInBackgroundWithBlock({ (objects: [AnyObject]!, error: NSError!) -> Void in

            self.users.removeAll(keepCapacity: true)
            for object in objects {

                var user:PFUser = object as PFUser

                if user.username != PFUser.currentUser().username {

                    self.users.append(user.username)

                }

            }



        })

    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return 1
    }



    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return users.count
    }


    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
        cell.textLabel?.text = users[indexPath.row]
        return cell
    }

}

1 个答案:

答案 0 :(得分:1)

一旦将所有对象加载到tableView引用的数组中,就需要调用self.tableView.reloadData()

快乐的编码!