iOS – 从UIImageView中的Parse检索并显示图像(Swift 1.2错误)
我以前一直在从Parse后端检索图像,使用以下代码行在UIImageView中的应用程序中显示:
let userPicture = PFUser.currentUser()["picture"] as PFFile userPicture.getDataInBackgroundWithBlock { (imageData:NSData, error:NSError) -> Void in if (error == nil) { self.dpImage.image = UIImage(data:imageData) } }
但我得到错误:
“AnyObject? 不能转换为’PFFile’; 你的意思是用’as!’ 迫使低垂?
“有用的”Apple修复技巧提示“as!” 改变所以我添加!,但后来我得到错误:
“AnyObject? 不能转换为’PFFile’
使用’getDataInBackgroundWithBlock’部分,我也得到错误:
无法使用类型’((NSData,NSError) – > Void)的参数列表调用’getDataInBackgroundWithBlock’
有人可以解释如何从Parse正确检索照片并使用Swift 1.2在UIImageView中显示它吗?
PFUser.currentUser()
返回可选类型( Self?
)。 因此,您应该将返回值解包为按下标访问元素。
PFUser.currentUser()?["picture"]
下标得到的值也是可选类型。 因此,您应该使用可选绑定来转换值,因为类型转换可能会失败。
if let userPicture = PFUser.currentUser()?["picture"] as? PFFile {
getDataInBackgroundWithBlock()
方法的结果块的参数都是可选类型( NSData?
和NSError?
)。 所以你应该为参数指定可选类型,而不是NSData
和NSError
。
userPicture.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
修改上述所有问题的代码如下:
if let userPicture = PFUser.currentUser()?["picture"] as? PFFile { userPicture.getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in if (error == nil) { self.dpImage.image = UIImage(data:imageData) } } }
- 根据UICollectionView中的图像dynamic更改单元大小
- 如何通过点击Swift中的button来打开fb和instagram应用程序
- UIGraphicsBeginImageContextWithOptions和multithreading
- iPhone应用程序可以在启动时启动吗?
- 对多个位置进行地理编码 – 了解何时调用“所有”完成块
- 如何获得朋友的名单,而无需打开FBFriendPickerViewController iOS
- 如何正确使用“openParentApplication”和“handleWatchKitExtensionRequest”以便“reply()”被调用?
- Nil’ing Firebase DatabaseReference不会停止观察是否绝对正确?
- 如何将RealmSwift List转换为结果?