从 PFFile 到 PFFile 的条件转换总是成功
Conditional cast from PFFile toPFFile always succeed
我得到 "Conditional cast from PFFile toPFFile always succeed" 的升温,其中突出显示了 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!)
}
}
}
}
你的 self.askProductImageArray
是一个 PFFIle
类型的数组,所以不需要做 as? PFFile
因为 swift 是强类型语言,它只会保存 PFFile
所以卸妆 as? PFFile
在最后。
在你的情况下你根本不需要if let
,你只需要检查项目是否已经存在。
你可以这样做
if self.askProductImageArray.count > 0 {
let tempProduct = self.askProductImageArray[0]
// and do rest
}
我得到 "Conditional cast from PFFile toPFFile always succeed" 的升温,其中突出显示了 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!)
}
}
}
}
你的 self.askProductImageArray
是一个 PFFIle
类型的数组,所以不需要做 as? PFFile
因为 swift 是强类型语言,它只会保存 PFFile
所以卸妆 as? PFFile
在最后。
在你的情况下你根本不需要if let
,你只需要检查项目是否已经存在。
你可以这样做
if self.askProductImageArray.count > 0 {
let tempProduct = self.askProductImageArray[0]
// and do rest
}