从Parse中检索图像
问题描述:
我正在尝试从Parse中获取图像。我一直对这个代码:从Parse中检索图像
import UIKit
import Parse
import ParseUI
class ViewControllerHome: UIViewController, UITableViewDelegate, UITableViewDataSource {
var imagesFiles = [PFFile]()
var imageUser = [String]()
var imageTitle = [String]()
@IBOutlet weak var MessageTable: UITableView!
let color = UIColor(red: 0.0/255.0, green: 105.0/255.0, blue: 92.0/255.0, alpha: 1)
let colore = UIColor.whiteColor()
let coloree = UIColor(red: 33.0/255.0, green: 33.0/255.0, blue: 33.0/255.0, alpha: 1)
override func viewDidLoad() {
let query = PFQuery(className: "Messages")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock { (posts: [PFObject]?, error: NSError?) -> Void in
if error == nil {
for post in posts! {
self.imagesFiles.append(post["Post"] as! PFFile)
self.imageUser.append(post["Name"] as! String)
self.imageTitle.append(post["Title"] as! String)
}
self.MessageTable.reloadData()
}else{
print(error)
}
}
super.viewDidLoad()
self.navigationController?.navigationBar.barTintColor = color
self.navigationController?.navigationBar.tintColor = colore
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: colore]
UITabBar.appearance().barTintColor = coloree
UITabBar.appearance().tintColor = colore
UITabBar.appearance().translucent = false
self.MessageTable.delegate = self
self.MessageTable.dataSource = self
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = MessageTable.dequeueReusableCellWithIdentifier("cell")! as! TableViewCellHome
//text
cell.UsernameLabel.text = imageUser[indexPath.row]
cell.Title.text = imageTitle [indexPath.row]
//image
imagesFiles[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
if imageData != nil {
let image = UIImage(data: imageData!)
cell.PostImage.image = image
}else{
print(error)
}
}
return cell
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return imagesFiles.count
}
@IBAction func refresh(sender: AnyObject) {
MessageTable.reloadData()
}
}
当我运行它,它返回只有用户名和文章的标题,但在图像应该待的地方是空白。下面是日志:
在此先感谢
答
从这些细节:
(lldb) po cell.PostImage
<UITableViewCellContentView: 0x7fb700ebdc00; frame = (0 0; 320 389); opaque = NO; gestureRecognizers = <NSArray: 0x7fb700ea4c10>; layer = <CALayer: 0x7fb700e71d20>>
(lldb) po cell
<Talent.TableViewCellHome: 0x7fb700ebd3f0; baseClass = UITableViewCell; frame = (0 0; 320 389); clipsToBounds = YES; autoresize = W; layer = <CALayer: 0x7fb700e7c7b0>>
我们可以看到你出列的电池是好的,但是,提及您的图像观点实际上是引用单元格内容视图。
这可能是插座连接的错误,您只需删除现有连接并重新连接到图像视图即可。
你调试了什么postimage连接到? – Wain
@很抱歉,但我该怎么办? –
在设置图像的位置放置一个断点,例外说明,当你这样做的时候,它实际上并不是一个图像视图... – Wain