我在Parse中有一个主类,它在swift中提供表视图。背景图像覆盖了整个背景。这些图像大小为480k。它们并不总是出现在tableviewcell上(我知道我可以添加占位符图像)。我有一个非常快的连接到我的手机..如果我使用4克他们甚至不会出现。
这是我拉下图像的功能。我真的不知道我还能做些什么。
func loadImages() {
var query = PFQuery(className: "TableViewData")
query.orderByDescending("objectId")
query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in
if(error == nil){
let imageObjects = objects as [PFObject]
for object in objects {
let thumbNail = object["backgroundImage"] as PFFile
thumbNail.getDataInBackgroundWithBlock({
(imageData: NSData!, error: NSError!) -> Void in
if (error == nil) {
let image = UIImage(data:imageData)
self.CellBackgroundImage.append(image!)
println(self.CellBackgroundImage.count)
}
})
}
}
else{
println("Error in retrieving \(error)")
}
})
}
如您所见,我将它们添加为数组,tableview将根据index.path显示它们。
有人可以提出任何建议吗?
答案 0 :(得分:1)
必须始终在主线程上执行用户界面的更新。异步网络完成通常在后台线程上调用(不确定PFQuery的东西),因此您需要强制更新发生在正确的线程上:
dispatch_async(dispatch_get_main_queue()) {
self.CellBackgroundImage.append(image!)
}