iOS Swift & Parse - getDataInBackground 不起作用?



目前正在学习 Swift 和 iOS。我尝试使用解析保存的图片访问。但是,我无法使用getDataInBackground(block:)访问它。

这是我的代码:

//
//  ViewController.swift
//  Instragram
//
//  Created by Macbook Pro on 22.07.17.
//  Copyright © 2017 Macbook Pro. All rights reserved.
//
import UIKit
import Parse
class ViewController: UIViewController {
@IBOutlet weak var picture: UIImageView!
@IBOutlet weak var senderLbl: UILabel!
@IBOutlet weak var recieverLbl: UILabel!
@IBOutlet weak var messageLbl: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Creating tables and data in database
let imageData = UIImageJPEGRepresentation(picture.image!, 0.5)
let file = PFFile(name: "picture.jpg", data: imageData!)
let table = PFObject(className: "messages")
table["sender"] = "Akhmed"
table["reciver"] = "Bob"
table["picture"] = file
table["message"] = "Hello!"
table.saveInBackground {(success, error) -> Void in
if(success){
print("Saved successful")
} else {
print(error!)
}
}
//Recieving Data from the Server
let information = PFQuery(className: "messages")
information.findObjectsInBackground{(objects: [PFObject]?, error) -> Void in
if error == nil {
for object in objects!{
self.senderLbl.text = object["sender"] as? String
self.recieverLbl.text = object["reciver"] as? String
self.messageLbl.text = object["message"] as? String
object["picture"].getDataInBackground(...)
}
} else {
print(error!)
}
}
}
}

在我访问名称,接收器和消息字符串后,我尝试通过以下方式访问已保存在该服务器上的图像:

object["picture"].getDataInBackground(block:) 

但是,在我键入object["picture"]后,Swift 甚至不会再自动更正了。我还得到一个错误:

'Any' 类型的值没有成员 'getDataInBackground(block:('

任何想法出了什么问题?在我看来,即使图像保存在服务器上的字符串"picture"下,Swift 也无法picture找到字符串。

您需要首先将其转换为PFFfile对象,然后使用如下所示getDataInBackground函数检索实际的图像数据:

let imageFile = object["picture"] as? PFFile
imageFile?.getDataInBackground (block: { (data, error) -> Void in
if error == nil {
if let imageData = data {
self.myImage = UIImage(data:imageData)
}
}
})

相关内容

  • 没有找到相关文章

最新更新