2016-01-21 62 views
0

我正在构建一个基于图片的应用程序。所以对于我像Instagram一样异常地检索所有图像是非常重要的。我明白这个功能...Async With Parse

var query = PFQuery(className: "Post") 
    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in 
     if let objects = objects as! [PFObjects] { 
      for object in objects { 
       objectsArray.append(object) 
      } 
     } 
    } 

...是异步的。但我想要一种方法来将Parse中的图像异步加载到表中,以便在滚动时加载图像。

回答

2

你应该看看PFImageView的功能loadInBackground()

例如,如果您使用的是PFTableViewController与PFTableViewCell,你可以做以下

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

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

    if let name = object?["name"] as? String { 
     cell.nameLbl.text = name 
    } 

    var initialThumbnail = UIImage(named: "placeholder") 
    cell.imgView.image = initialThumbnail 
    if let thumbnail = object?["photo"] as? PFFile { 
     cell.imgView.file = thumbnail 
     cell.imgView.loadInBackground() 
    } 

    return cell 
} 

与PFTableViewCell有

class CustomCell: PFTableViewCell { 
    @IBOutlet weak var nameLbl: UILabel! 
    @IBOutlet weak var imgView: PFImageView! 
} 
从另一个SO reply

此外,你可以试试这个:

let userImageFile = userPhoto["imageFile"] as PFFile 
userImageFile.getDataInBackgroundWithBlock { 
    (imageData: NSData!, error: NSError!) -> Void in 
    if !error { 
     let image = UIImage(data:imageData) 
    } 
} 
+0

谢谢!这有助于很多! –