我运行我自己的解析服务器,一切正常但是 我无法将A PFFile转换为UIImage,这是它给我的错误:
无法转换类型的值'(NSData?,NSError?) - >虚空'预期参数类型PFDataResultBlock'
以下是我使用的代码:
var imageFromParse = object.object(forKey: "ProfilePicture") as! PFFile!
imageFromParse!.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
var image: UIImage! = UIImage(data: imageData!)!
})
所有这些都曾经在Swift 2.3中完美运行。 谢谢你的帮助。
答案 0 :(得分:3)
Swift 3.0:
if let imageFromParse = user.object(forKey: "ProfilePicture") as? PFFile {
imageFromParse.getDataInBackground(block: {
(data: Data?, error: Error?) in
if error == nil {
}
})
}
主要更新:
(数据: NSData ?,错误: NSError ?)
已更新为:
(数据:数据?,错误:错误?)
和
除非另有说明,否则Swift 3会生成所有标签,这意味着方法名称不再详细说明其参数。实际上,这通常意味着方法名称的最后一部分被移动为第一个参数的名称。 请访问:https://www.hackingwithswift.com/swift3
了解更多信息答案 1 :(得分:2)
使用Data
和Error
代替NSData
和NSError
答案 2 :(得分:1)
我在swift 3.0上做了一些测试,以下代码对我有用:
let query = PFQuery(className: "FileTest")
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
let firstObject = objects?.first as PFObject!
let objectFile = firstObject.objectForKey("file") as! PFFile
objectFile.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
let image = UIImage(data: imageData!)
if image != nil {
self.imageOutlet.image = image
}
})
}
在这段代码中我首先获取所有 FileTest 集合,然后我拿第一个对象(当然只是为了测试),然后我读取文件。请注意我使用 objectForKey 以获取测试列下存在的PFFile。我有文件后,我调用 getDataInBackground 来获取数据,从数据创建UIImage并更新我的imageView 一切都按预期工作.. 尝试运行此代码,看看它是否适合您。