从 Parse 在 Swift 中加载图像

Posted

技术标签:

【中文标题】从 Parse 在 Swift 中加载图像【英文标题】:Loading image in Swift from Parse 【发布时间】:2014-12-15 18:26:10 【问题描述】:

我已成功将 Parse 中的数据提取到 swift 中,但我的图像似乎没有按照我的方式工作。

在我的 cellForRowAtIndexPath 方法中,我执行以下操作:

        var event: AnyObject? = eventContainerArray[indexPath.row]

        if let unwrappedEvent: AnyObject = event 
            let eventTitle = unwrappedEvent["title"] as? String
            let eventDate = unwrappedEvent["date"] as? String
            let eventDescription = unwrappedEvent["description"] as String
            let eventImage = unwrappedEvent["image"] as? UIImage

            println(eventImage)

            if (eventImage != nil)


                cell.loadItem(date: eventDate!, title: eventTitle!, description: eventDescription, image: eventImage!)


            else 


                let testImage: UIImage = UIImage(named: "test-image.png")!

                cell.loadItem(date: eventDate!, title: eventTitle!, description: eventDescription, image: testImage )


            

        
    

    return cell

我将 println() 与我的 PFQuery 一起使用,我将其视为正在加载的对象的一部分:image = "<PFFile: 0x7fee62420b00>";

所以我在上面的 eventContainerArray 中得到了标题、日期、描述等,所有这些都可以正常加载,但是当我查看 eventImage 时,每次都是 nil。在上面的代码中,它总是默认加载 test-image.png,因为图像是 nil。我只是以不正确的方式处理那个 PFFile 吗?不知道为什么它不起作用。

谢谢!

【问题讨论】:

【参考方案1】:

您的image 可能是PFFile 对象。您需要加载它以从中获取 UIImage 对象。

let userImageFile = unwrappedEvent["image"] as PFFile
userImageFile.getDataInBackgroundWithBlock 
    (imageData: NSData!, error: NSError!) -> Void in
    if error == nil 
        let eventImage = UIImage(data:imageData)
        // do something with image here
    

【讨论】:

【参考方案2】:

我不熟悉 Parse,但鉴于您从 println() 看到的内容,您收到的似乎不是 UIImage 而是某种数据类型。这是有道理的;您不会通过网络接收 ObjC 对象。所以您正在获取一个文件,但是当您使用条件向下转换 (x as? UIImage) 时,它返回 nil,因为您没有 UIImage。

相反,您需要转换为 PFFile,然后可能使用UIImage(data: file.getData) 或类似的东西创建一个 UIImage。我不熟悉 Parse 的工作原理。

编辑:这是一个可能有帮助的相关问题:I can't get image from PFFile

【讨论】:

我想我明白了——看看我是否可以让它工作到 PFFile。谢谢!

以上是关于从 Parse 在 Swift 中加载图像的主要内容,如果未能解决你的问题,请参考以下文章

来自html字符串的iOS Swift 4图像未在WKWebView中加载

使用自动布局在某些单元格中加载图像

Swift - 根据数组值从 Parse 表中加载

图像在 iframe 中加载后未从缓存中加载

如何通过滑翔(或其他)在listView项目中加载小部件中的图像

ScrollView:如何从文档中加载图像