从 PFFile 到 PFFile 的条件转换总是成功

Posted

技术标签:

【中文标题】从 PFFile 到 PFFile 的条件转换总是成功【英文标题】:Conditional cast from PFFile toPFFile always succeed 【发布时间】:2016-01-25 14:12:04 【问题描述】:

我收到了“”的提示,其中突出显示了 if let tempProductPicture = self.askProductImageArray[0] as? PFFile。解决它的最佳方法是什么?谢谢

var askProductImageArray = [PFFile]()
override func viewDidLoad() 
    let query = PFQuery(className: "products")
    query.whereKey("title", equalTo: labelTitleText)
    query.findObjectsInBackgroundWithBlock  (objects: [PFObject]?, error:NSError?) -> Void in
            if error != nil 
            
            for object in objects! 
                self.askProductImageArray.append(object.objectForKey("detailsImage") as! PFFile)
                self.askTable.reloadData()
            
            if let tempProductPicture = self.askProductImageArray[0] as? PFFile 
                tempProductPicture.getDataInBackgroundWithBlock  data, error in
                    if data == nil 

                     else if error != nil 
                     else 
                        self.productPicture.image = UIImage(data: data!)
                    
                
            

【问题讨论】:

【参考方案1】:

您的self.askProductImageArrayPFFIle 类型的数组,因此无需执行as? PFFile,因为swift 是强类型语言,它只包含PFFile,所以最后是卸妆as? PFFile

在你的情况下,你根本不需要做if let,你只需要检查项目是否已经存在。

你可以这样做

if self.askProductImageArray.count > 0 
let tempProduct = self.askProductImageArray[0]
// and do rest 

【讨论】:

如果我删除为? PFFile,出现“Initializer for conditional binding must have Optional type, not 'PFFile'”的错误 如果让你根本不需要做,你只需要检查数组计数然后使用那个对象

以上是关于从 PFFile 到 PFFile 的条件转换总是成功的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse 将 PFFile 转换为 NSData

如何将 PFFile 数组转换为 UIImage 数组?

如何快速将 PFFile 转换为 UIImage?

无法将 PFFile 类型的值转换为 NSURL

如何将 PFFile 从一个 ViewController 传输到另一个 ViewController

从原始数据创建 AVPlayer 或以不同格式将视频保存到 PFFile