从 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.askProductImageArray
是PFFIle
类型的数组,因此无需执行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 的条件转换总是成功的主要内容,如果未能解决你的问题,请参考以下文章