如何在图像视图中转换PFObject数组?

时间:2015-07-18 00:49:22

标签: xcode swift random parse-platform uiimageview

很抱歉,我想再次尝试这个,只需改写它就可以理解。

ImageFiles是一个PFObjects数组,大约有10个图像

let randomNumber = imageFiles[Int(arc4random_uniform(UInt32(imageFiles.count)))]

    println(randomNumber)

并且println从数组中给我一个随机图像文件。

如何将其放入图像视图?这意味着我希望在uiimage视图中可以查看数组的随机元素。

let image = UIImage(data: randomNumber as AnyObject as! NSData)

最接近的我......没有语法错误只有运行时

无法转换类型' PFObject'的价值(0x105639070)到' NSData' (0x106c97a48)。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

存储在Parse中的实际图像的格式不是PFObject,而是PFFile类型。通常,对PFFile的引用存储在PFObject中。

我可以想象您的代码/伪代码最终会如下所示:

let myRandomImageMetaData = imageFiles[Int(arc4random_uniform(UInt32(imageFiles.count)))]
let imageFileReference: PFFile = myRandomImageMetaData["imgLink"]

实际代码将取决于我已经问过您here的数据库结构,但您从未提供过。

现在你有了文件参考,那么你实际上必须自己下载图像数据。你可以这样做:

imageFileReference.getDataInBackgroundWithBlock {
    (imageData: NSData?, error: NSError?) -> Void in
    if error == nil {
        if let imageData = imageData {
            let image = UIImage(data:imageData)
        }
    }
}

您可以在Parse中阅读有关存储和检索存储为PFFile的图像的更多信息:

https://parse.com/docs/ios/guide#files-images

现在,您的下一个问题是,在首先上传图像时,您还不知道所有这些。因此,您首先将图片上传到Parse的风险很高,并且图像根本不存在。