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

我收到了“从 PFFile 到 PFFile 的条件转换总是成功”的提示,其中突出显示了 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!)
                    }
                }
            }
}

【问题讨论】:

    标签: ios swift parse-platform casting pffile


    【解决方案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'”的错误
    • 如果让你根本不需要做,你只需要检查数组计数然后使用那个对象
    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 2019-12-17
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2015-09-04
    相关资源
    最近更新 更多