我正在使用swift和解析。我使用了' query.orderbyDescending'但在某种程度上它并不完美。我想安排人们的总分,但顺序看起来像这样(例如,9,7,32,21,15 ......)。似乎编码识别数字的第一个数字。我该如何解决?这是我的代码。 谢谢!
class IndividualStatsTVC: UITableViewController {
var postsArray = [PFObject]()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background2.png")!)
tableView.separatorColor = UIColor.orangeColor()
fetchData()
print(postsArray)
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return postsArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("IndiStats", forIndexPath: indexPath) as! IndividualStatsTVCell
cell.yourname?.text = postsArray[indexPath.row].objectForKey("Name") as? String
cell.label1?.text = postsArray[indexPath.row].objectForKey("WIN") as? String
cell.label2?.text = postsArray[indexPath.row].objectForKey("DRAW") as? String
cell.label3?.text = postsArray[indexPath.row].objectForKey("LOSE") as? String
cell.label4?.text = postsArray[indexPath.row].objectForKey("AceError") as? String
cell.label5?.text = postsArray[indexPath.row].objectForKey("TOTAL") as? String
return cell
}
//cell color
func colorForIndex(index: Int) -> UIColor {
let itemCount = postsArray.count - 1
let color = (CGFloat(index) / CGFloat(itemCount)) * 1.0
return UIColor(red: 1.0, green: color, blue: 0.0, alpha: 0.1)
}
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath) {
cell.backgroundColor = colorForIndex(indexPath.row)
}
func fetchData(){
//empty postsArray
postsArray = []
//bring data from parse
let query = PFQuery(className: "IndividualStats")
query.orderByDescending("TOTAL")
// postsArray.sortInPlace({($0["TOTAL"] as! Int) > ($1["TOTAL"] as! Int)})
query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error) -> Void in
if error == nil && objects != nil{
for object in objects! {
self.postsArray.append(object)
print(self.postsArray)
self.tableView.reloadData()
}
}
}}
答案 0 :(得分:0)
从您的代码中,似乎TOTAL
是String
。如果是这样,排序顺序就是预期的。您需要将TOTAL
存储为数字。
答案 1 :(得分:0)
您可以使用orderBySortDescriptor:
使用NSSortDescriptor。它会自动处理排序。