快速解析是非常慢的 - 我的编程错了吗?

时间:2015-02-19 10:48:42

标签: ios swift parse-platform

我在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显示它们。

有人可以提出任何建议吗?

1 个答案:

答案 0 :(得分:1)

必须始终在主线程上执行用户界面的更新。异步网络完成通常在后台线程上调用(不确定PFQuery的东西),因此您需要强制更新发生在正确的线程上:

dispatch_async(dispatch_get_main_queue()) {
    self.CellBackgroundImage.append(image!)
}