【发布时间】:2017-01-27 19:19:59
【问题描述】:
下面是我的代码,它从 Parse 服务器类中检索图像并将其加载到 tableview 中。 当我按 GetAlbum UIbutton 显示数据时,我必须按两次才能成功在 tableview 中显示数据,但我不知道是什么原因。请帮忙(PS:我是swift的新手)
var Saveddata: [UIImage] = []
@IBAction func getAlbum(_ sender: AnyObject) {
if (self.textEntercode.text == "")
{
let alert = UIAlertController(title: "No Entered value", message: "Please enter value", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil));
//event handler with closure
present(alert, animated: true, completion: nil);
}
else {
//-------------Get Data from Parse Server-------------------
var photo = textEntercode.text
let query = PFQuery(className: "Photostable10")
query.whereKey("photo", equalTo: photo)
//query.whereKey("Score", greaterThan: 1000)
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!)
}
})
}
}
}
})
self.tableview.reloadData()
} //else close
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell")!
cell.textLabel!.text = "Post"
cell.imageView?.image = Saveddata[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.Saveddata.count
}
【问题讨论】:
标签: swift uitableview pfquery