如何使用swift从解析数据更改此代码以按创建日期进行查询?

时间:2015-05-22 21:31:21

标签: ios iphone swift parse-platform ios8

我有这段代码从解析数据中检索图像。

如何按创建日期查询?我尝试使用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")
          }
       })
     }    
}}

1 个答案:

答案 0 :(得分:0)

你有一组对象都引用了一个图像文件,但也可能是一组其他的东西,图像很可能会被改变。因此,对象创建日期与图像创建日期不同,并且图像文件不知道(或至少不公开)它的创建日期。您现在也总是将图像添加到数组的开头,因此位置将根据每个图像的大小(以及下载所需的时间)来设置。此外,尝试同时下载大量图像只意味着你会有很多超时。

所以,实际上你应该在你的对象上有一个列,它保存图像的更新日期,并按该日期对对象进行排序。下载图像时,将它们放入图像数组中与其数组中的拥有对象相同的索引(使用NSNull填充数组,以便了解正在发生的事情。)