我有这段代码从解析数据中检索图像。
如何按创建日期查询?我尝试使用findObjectsInBackgroundWithBlock
,但它无法使用PFFile
。我该怎么办?
此外,作为一个附带问题,有时当我将图像放在UIImageView
时,它们是颠倒的或侧面的。为什么呢?
if let objects = objects as? [PFObject] {
for object in objects {
if let userPicture = object.valueForKey("Image") as? PFFile {
userPicture.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
if (error == nil)
{
let image = UIImage(data:imageData!)
self.ImageArray.insert(image!, atIndex: 0)
}
else {
self.alert("Error: \(error!) \(error!.userInfo!)", Message: "Make sure you have a secure internet connection")
}
dispatch_async(dispatch_get_main_queue())
{
self.collectionView.reloadData()
println("Finished Pictures")
}
})
}
}}
答案 0 :(得分:0)
你有一组对象都引用了一个图像文件,但也可能是一组其他的东西,图像很可能会被改变。因此,对象创建日期与图像创建日期不同,并且图像文件不知道(或至少不公开)它的创建日期。您现在也总是将图像添加到数组的开头,因此位置将根据每个图像的大小(以及下载所需的时间)来设置。此外,尝试同时下载大量图像只意味着你会有很多超时。
所以,实际上你应该在你的对象上有一个列,它保存图像的更新日期,并按该日期对对象进行排序。下载图像时,将它们放入图像数组中与其数组中的拥有对象相同的索引(使用NSNull
填充数组,以便了解正在发生的事情。)