使用Swift从Parse加载图像

时间:2015-02-27 03:17:32

标签: ios xcode swift parse-platform pfquery

我编写了用于从Parse数据控制台检索图像的代码,以便它们出现在我的Swift应用程序的Storyboard中,但我不知道如何让IBOutlet连接到我添加到我的Storyboard的UIImageView这样来自Parse的图像实际上会出现在它的位置。这是我到目前为止在ViewController中的代码:

var imageResources : Array<UIImage> = []

override func viewDidLoad() {
    super.viewDidLoad()


func loadImages(){

    var query2 = PFQuery(className: "VoteCount")
    query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in
        if(error == nil){
            let imageObjects = objects as [PFObject]
            for object in objects {
                let thumbNail = voteCount1["image"] as PFFile
                thumbNail.getDataInBackgroundWithBlock({
                    (imageData: NSData!, error: NSError!) -> Void in
                    if (error == nil) {
                        let image = UIImage(data:imageData)
                        self.imageResources.append(image!)
                        println(image)
                    }
                })
            }
        }
        else{
            println("Error in retrieving \(error)")
        }
        })
    }

}

我将哪种IBOutlet连接到我添加到Main.storyboard的UIImageView?我只是不确定如何命名它将从Parse调用我想要检索的图像。

1 个答案:

答案 0 :(得分:0)

控制 - 从UIImageView拖动到Swift文件,在方法之外但在实现中。将其命名为myImageView。

您无法在图像上调用println。

然后在if (error == nil) {行之后尝试以下

if let image = UIImage(data:imageData) {
    dispatch_async(dispatch_get_main_queue()) {
         self.myImageView.image = image
    }
}

或者那种效果。你需要确定:

  1. 图片存在
  2. 你在主线程上做了任何关于UI更新的事情(那是dispatch_async(dispatch_get_main_queue()) {}完成的事情
  3. 尝试一下,让我知道这是否有帮助。我现在正在路上,但是当我有机会坐下来时,我会回过头来检查一下。

    最后一招:您可以在获得图像的行上放置断点。然后,当应用程序暂停时,您可以将鼠标悬停在行image中的单词if let image = UIImage(data:imageData) {上,然后单击弹出窗口中的眼睛图标。然后,您应该能够从Parse查看图像。如果单击眼睛图标时图像没有出现,您可能需要进行额外的调试(图像是否存在,您的逻辑是否正确,等等)。