【问题标题】:PFFile to UIImage with swift 3?PFFile 到 UIImage 与 swift 3?
【发布时间】: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 的预期语法是什么。强制解开 DataError 对我来说似乎很奇怪。你确定它不应该是(imageData: Data?, error: Error?) -> Void in
  • 还要检查PFDataResultBlock 的语法。是否已更新?它可能需要使用NSData 而不是DataNSError 而不是Error。只是一个想法。我这么说的唯一原因是,Parse 就像一年前一样被关闭了,不是吗?
  • 我确定数据和错误而不是 NSData 和 NSError,因为我以前使用过它,当我使用 NSError 时出现错误。 Parse 已经成为 Open Source ,现在有一些使用 Parse 的替代方法,例如 Back4app.com
  • 我认为您只需将感叹号! 替换为?。所以说getDataInBackgroundWithBlock({ (imageData: Data?, error: Error?) -> Void in .... )}
  • 谢谢。我解决了它,出于某种原因,在 Swift 3 中 userPicture.getDataInBackgroundWithBlock 变为 userPicture.getDataInBackgroundNSData = DataNSError = Error

标签: swift parse-platform back4app


【解决方案1】:

我解决了我的问题

斯威夫特 3:

if let userPicture = object.valueForKey("Image")! as! PFFile {
userPicture.getDataInBackground({ (imageData: Data?, error: Error?) -> Void in
let image = UIImage(data: imageData!)
if image != nil {
self.imageArray.append(image!)
 }
 })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多