很抱歉,我想再次尝试这个,只需改写它就可以理解。
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)。
答案 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的风险很高,并且图像根本不存在。