iOS Swift:按顺序检索解析后端数据,因为它不起作用

时间:2015-10-19 20:07:09

标签: ios swift parse-platform swift2

设置:XCODE 7.1 Beta,Swift iOS 9

我正在尝试从Parse.com数据库中的Number类型的键值按顺序(orderByAscending)检索我的数据。

当我没有检索图像时,OrderBy正常工作,并且检索到的对象直接位于findObjectsInBackgroundWithBlock中。

var prodCst = NSMutableArray()
var prodNam = NSMutableArray()

func loadData() {
 let query:PFQuery = PFQuery(className: "Main")
    query.orderByAscending("ProductCost")
    query.findObjectsInBackgroundWithBlock{(objects:[AnyObject]?, error: NSError?) -> Void in
        if(error == nil){
            for object in objects as! [PFObject!] {
               let pName = object["ProductName"] as! String
               let pCost = object["ProductCost"]! as! Int

               self.prodNam.addObject(pName)
               self.prodCst.addObject(pCost)
      }
    }
  }
}

但是当我检索图像时,我必须在findObjectsInBackgroundWithBlock中使用getDataInBackgroundWithBlock。以随机顺序重新排列检索到的对象。

有人可以告诉我如何解决这个问题吗?我想以Cost的升序/降序顺序获取数据以及相应的图像。

在Parse中,

Key" ProductCost"是"数"并具有Int值。

代码如下:

var prodCst = NSMutableArray()
var prodNam = NSMutableArray()
var prodImage : Array<UIImage> = []

func loadData() {
let query:PFQuery = PFQuery(className: "Main")
    query.orderByAscending("ProductCost")
    query.findObjectsInBackgroundWithBlock{(objects:[AnyObject]?, error: NSError?) -> Void in
        if(error == nil){
            for object in objects as! [PFObject!] {
               let pName = object["ProductName"] as! String
               let pImage = object["ProductImage"] as! PFFile
               let pCost = object["ProductCost"]! as! Int
          pImage.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
              if (error == nil) {

                let retrivedFoodImage: UIImage = UIImage(data:imageData!)!
                self.prodImage.append(retrivedFoodImage)
                self.prodNam.addObject(pName)
                self.prodCst.addObject(pCost)
            }
         })
       }
     }
   }
}

0 个答案:

没有答案