【发布时间】:2017-01-13 21:58:02
【问题描述】:
我正在尝试使用此代码
if let userPicture = object.valueForKey("Image")! as! PFFile {
userPicture.getDataInBackgroundWithBlock({
(imageData: Data!, error: Error!) -> Void in
if (error == nil) {
let image = UIImage(data:imageData)
self.ImageArray.append(image)
}
})
}
我收到了这个错误
无法将 '(Data!, Error!) -> Void' 类型的值转换为预期值 参数类型'PFDataResultBlock?'
【问题讨论】:
-
在我看来,您写出的完成块与 Parse 框架中预期的
PFDataResultBlock不匹配。自从他们关闭 Parse 以来,我没有使用过 Parse,但是 Parse 文档怎么说?PFDataResultBlock的预期语法是什么。强制解开Data和Error对我来说似乎很奇怪。你确定它不应该是(imageData: Data?, error: Error?) -> Void in? -
还要检查
PFDataResultBlock的语法。是否已更新?它可能需要使用NSData而不是Data和NSError而不是Error。只是一个想法。我这么说的唯一原因是,Parse 就像一年前一样被关闭了,不是吗? -
我确定数据和错误而不是 NSData 和 NSError,因为我以前使用过它,当我使用 NSError 时出现错误。 Parse 已经成为 Open Source ,现在有一些使用 Parse 的替代方法,例如 Back4app.com
-
我认为您只需将感叹号
!替换为?。所以说getDataInBackgroundWithBlock({ (imageData: Data?, error: Error?) -> Void in .... )} -
谢谢。我解决了它,出于某种原因,在 Swift 3 中
userPicture.getDataInBackgroundWithBlock变为userPicture.getDataInBackground和NSData=Data,NSError=Error
标签: swift parse-platform back4app