2015-10-21 58 views
1

我试图从Parse查询图像到我的单元格,然后单击该单元格时查看控制器。在最近使用Swift进行更新之前,我确实有这个工作,现在我不确定是哪里出了问题。如何使用Swift和parse.com在tableview中显示图像

import UIKit 
import Parse 
import ParseUI 
import Bolts 

class ProductTableViewController: PFQueryTableViewController { 

    // Initialise the PFQueryTable tableview 
    override init(style: UITableViewStyle, className: String!) { 
     super.init(style: style, className: className) 
    } 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 

     // Configure the PFQueryTableView 
     self.parseClassName = "Products" 
     self.textKey = "productName" 
     self.imageKey = "productImage" 
     self.pullToRefreshEnabled = true 
     self.paginationEnabled = false 

    } 



    // Define the query that will provide the data for the table view 
    override func queryForTable() -> PFQuery { 
     let query = PFQuery(className: "Products") 
     query.orderByDescending("createdAt") 
     return query 
    } 


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell { 

     var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! Customcells! 
     if cell == nil { 
      cell = Customcells(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell") 
     } 

     // Extract values from the PFObject to display in the table cell 
     if let ProductName = object?["ProductName"] as? String { 
      cell.ProductName.text = ProductName 
     } 


     // Display product image 
     let initialThumbnail = UIImage(named: "question2") 
     cell.productImage.image? = initialThumbnail! 
     if let thumbnail = object?["ProductImage"] as? PFFile { 
      cell.productImage.file = thumbnail 
      cell.productImage.loadInBackground() 
     } 



     return cell 
    } 



    override func viewDidLoad() { 
     super.viewDidLoad() 



    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 



    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

     // Get the new view controller using [segue destinationViewController]. 
     let productView = segue.destinationViewController as! ProductViewController 

     // Pass the selected object to the destination view controller. 
     if let indexPath = self.tableView.indexPathForSelectedRow { 
      let row = Int(indexPath.row) 
      productView.currentObject = (objects?[row] as! PFObject) 



     } 
    } 

} 

这是我的一个视图控制器的代码,它有tableView。图像没有出现,但其他一切都出现了。产品名称显示在正确的位置,当单元格被点击时,它会将您带到视图控制器,向您显示产品说明,产品名称等。唯一没有出现的是图像。任何想法可能会造成这种情况?

回答

0

发现了什么,我需要如果您使用解析为您的后端,这是更新迅速代码的Xcode 7.1做

override func tableView(tableView: UITableView, cellForRowAtIndexPath  indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Customcells 


    let imageFile = object?.objectForKey("ProductImage") as? PFFile 
    cell.productImage.image = UIImage(named: "question2") 
    cell.productImage.file = imageFile 
    cell.productImage.loadInBackground() 


    return cell 

} 

,你可以用于将图像拖入桌面视图。

0

尝试使用此:

let profileImage:PFFile = Places[indexPath.row]["Image"] as! PFFile 
profileImage.getDataInBackgroundWithBlock { 
      (imageData: NSData?, error: NSError?)-> Void in 
      if (error == nil) { 
       cell.pic.setImage(UIImage(data: imageData!)!, forState: UIControlState.Normal) 
      } 
     } 
+0

感谢您的帮助,但您可以帮我弄清楚我的代码会在哪里出现在这里?对不起,我只是相当新的解析和迅速 – RedLineTom

相关问题