从Parse Swift添加对象后,TableView不显示数组

时间:2016-01-15 04:11:31

标签: ios swift parse-platform tableview

var test = [String]()
var array = [String]()
override func viewDidLoad() {
    super.viewDidLoad()
    test = ["1", "2"]
    var item = String()
    var query:PFQuery = PFQuery(className: "Restaurant")
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil {

            for object in objects! {
                let data = object as PFObject
                item = String(data["name"])
                print(item)
                self.array.append(item)
            }
            print(self.array)
            print(self.array.count)
        }
    }
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return array.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell

    cell.textLabel!.text = array[indexPath.row]
    return cell
}

当我使用" test"数组,可以显示。但是如果我要使用另一个数组,它就不会显示任何内容。不确定是否正确添加了数组,但在输出中,它显示数据。

这是print的输出:

PerBacco
MACA Restaurant
["PerBacco", "MACA Restaurant"]
2

2 个答案:

答案 0 :(得分:0)

通过测试,它可以显示表中的数据,因为它是同步的。

但是使用获取数据,它是异步的 您必须在获取数据后调用reloadData

    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil {

            for object in objects! {
                let data = object as PFObject
                item = String(data["name"])
                print(item)
                self.array.append(item)
            }
            print(self.array)
            print(self.array.count)
            tableView.realoadData() // here
        }
    }

答案 1 :(得分:0)

我希望你设置tableView数据源+你必须调用self.tableView.reloadData()来刷新tableView内容。