我在PFQuery
中叫viewDidLoad
中有一个getUserPicPostData
。输出显示数组计数中有3张图像。
ViewdidLoad:
func getUserPicPostData() {
let query = PFQuery(className: "PicPost")
query.whereKey("Username", equalTo: usernameSelected)
query.findObjectsInBackground(block: { (objects: [PFObject]?,error: Error?) in
if let objects = objects {
for object in objects {
self.picLikeArray.append(object["UserLikes"] as! Int)
self.picTimeArray.append(object["UserTime"] as! String)
self.picObjectIdArray.append(object.objectId!)
let userImageFile = object["ImageFile"] as? PFFileObject
userImageFile?.getDataInBackground(block: { (imageData: Data?, error: Error?) in
if error == nil {
self.picPostArray.append(UIImage(data: imageData!)!)
print(self.picPostArray.count)
}
else {
print(error)
}
})
}
}
})
}
然后我要告诉我的单元格接受imageArray的输入。 PicPostArray现在为零?
cellForRowAtIndexPath:
print(picPostArray)
cell.imageView1.imageView!.image = picPostArray[0]
cell.imageView2.imageView!.image = picPostArray[1]
cell.imageView3.imageView!.image = picPostArray[2]
答案 0 :(得分:0)
重新加载表时,您的picPostArray
为零,因为尚未设置。这是由于您的异步query.findObjectsInBackground
。为了解决这个问题,您只能在设置了picPostArray
后重新加载表:
var picPostArray: [UIImage] = [] {
didSet {
yourTableView.reloadData()
}
}
答案 1 :(得分:0)
在将图像添加到列表之后,只需重新加载tableView。
picPostArray
的初始化将是
var picPostArray:[UIImage] = [] // picPostArray not nil
然后在阵列上设置图像后重新加载tableView。
self.picPostArray.append(UIImage(data: imageData!)!)
self.tableView.reloadData()
由于异步请求,您需要重新加载tableView。
希望这可以解决此问题。