Swift为什么从Parse中检索数据时我必须按两次按钮才能在tableview中加载数据

时间:2017-01-27 19:20:00

标签: swift uitableview pfquery

下面是我的代码,它从Parse服务器类中检索图像并将其加载到tableview中。 当我按下GetAlbum UI按钮显示数据时,我必须按两次才能成功地在tableview中显示数据,我不知道是什么原因。请帮忙(PS:我是swift的新手)

function myFunc() {
    //damn code
}

export default myFunc

1 个答案:

答案 0 :(得分:1)

您对self.tableView.reloadData()的呼叫位于错误的位置,并且正在从错误的队列中调用它。您需要在主队列上调用它,并且在更新数据模型后需要在查询完成处理程序中调用它。

query.findObjectsInBackground(block: { (objects : [PFObject]?, error: Error?) -> Void in
    if error == nil {
        for object in objects! {
            if let userPicture = object.value(forKey: "photo") {
                let userPicture = object.value(forKey: "photo")! as! PFFile
                userPicture.getDataInBackground({ (imageData: Data?, error: Error?) -> Void in
                    let image = UIImage(data: imageData!)
                    if image != nil {
                        self.Saveddata.append(image!)
                    }
                })
            }
        }
        DispatchQueue.main.async {
            self.tableview.reloadData()
        }
    }
})