Swift 从 Parse sdk 检索图像

Swift Image retrieving from Parse sdk

我目前正在 Swift 中编写社交网络应用程序。在我的应用程序中,我有一个功能,即用户可以将带有图像的消息发送到时间轴。我希望能够检索图像并使用我的时间线内的 UIImageView 预览它。我编写了以下函数,但收到 "unexpected found nil while unwrapping a Optional Value" 错误。我希望社区中有人可以指出我做错了什么。

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?
                    }
                }
            }
        }
    }
}

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

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

我建议它是 finalimagetimelineImagestimelineimage

对于最终图像,我会使用 if let:

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

仅当 finalimage 获得值时,这才安全地运行代码。

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

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