设置: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)
}
})
}
}
}
}