在 Swift 中解析 PFFile 下载顺序 iOS
Posted
技术标签:
【中文标题】在 Swift 中解析 PFFile 下载顺序 iOS【英文标题】:Parse PFFile download order iOS in Swift 【发布时间】:2015-08-09 08:03:59 【问题描述】:我正在尝试从 Parse 检索图像作为 PFFiles,但它们返回的顺序每次都会改变。我找到了另一个问题/答案来解决这个问题,但它在 Obj-C 中,一个小时后,我无法在 Swift 中翻译一个有效的解决方案。
这是原帖:
Parse PFFile download order ios
这是我的代码:
func retrieveItemImage()
var query = PFQuery(className: "Items")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock (objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil
let imageObjects = objects as! [PFObject]
for object in imageObjects
let thumbnail = object["image1"] as! PFFile
thumbnail.getDataInBackgroundWithBlock(imageData: NSData?, error: NSError?) -> Void in
if error == nil
if let image = UIImage(data: imageData!)
self.images.append(image)
self.theTableView.reloadData()
self.theTableView.reloadData()
【问题讨论】:
【参考方案1】:我会这样:
var images = [Int: UIImage]()
把它变成一个字典,然后你会得到一个可选的下标结果,并且永远不会有数组超出范围的异常。
然后我将你的代码部分重写为:
for (index, object) in enumerate(imageObjects)
let thumbnail = object["image1"] as! PFFile
thumbnail.getDataInBackgroundWithBlock(imageData: NSData?, error: NSError?) -> Void in
if error == nil
if let image = UIImage(data: imageData!)
self.images[index] = image
您永远不知道异步操作完成的顺序,但您的图像将按指定顺序排列,或者在字典中为 nil。您还应该更正您的 tableView 方法以检查它是否为零。另外,在我看来,每次加载图像后重新加载整个表格是无效的。
【讨论】:
以上是关于在 Swift 中解析 PFFile 下载顺序 iOS的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中“正确”保存 PFFile 并检索 url
使用 canEditRowAtIndexPath 从解析中删除图像
Swift 2.0:需要在 Parse 的 PFQueryTableViewController 上显示图像(PFFile)?