从Parse sdk检索的Swift图像

时间:2015-03-22 03:56:47

标签: ios iphone swift parse-platform uiimageview

我目前正在Swift中编写一个社交网络应用程序。在我的应用程序内部,我的功能是用户可以在附加图像的时间轴上发送消息。我想能够检索图像并使用我的时间轴内的UIImageView进行预览。我编写了以下函数,但是我收到了“在展开可选值时意外发现的nil”错误。我希望社区中有人可以指出我做错了什么。

func loadImages()
{
    var query = PFQuery(className: "imagesUploaded")
    query.orderByDescending("objectID")

    query.findObjectsInBackgroundWithBlock {
        (objects:[AnyObject]!,error:NSError!) -> Void in
        if error == nil {
            let imagesobjects = objects as [PFObject]

            for object : PFObject in objects as [PFObject] {
                let image = object["filename"] as PFFile

                image.getDataInBackgroundWithBlock {
                    (imageData:NSData!, error:NSError!) -> Void in
                    if error == nil {
                        let finalimage = UIImage(data: imageData)
                        self.timelineImages.append(finalimage!)
                        self.timelineimage.image = finalimage?
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

鉴于错误发生在这些行周围:

self.timelineImages.append(finalimage!)
self.timelineimage.image = finalimage?

我建议它是finalimagetimelineImagestimelineimage

对于finalimage,我会使用if let

if let finalimage = UIImage(data: imageData) {
    self.timelineImages.append(finalimage)
    self.timelineimage.image = finalimage
}

只有在finalimage获得值时才能安全地运行代码。

如果其中一个回复为零,您可以使用?解决此问题。因此,您的最终代码如下所示:

if let finalimage = UIImage(data: imageData) {
    self.timelineImages?.append(finalimage)
    self.timelineimage?.image = finalimage
}