swift解析查询orderbyDescending不起作用

时间:2016-01-16 06:34:07

标签: swift parse-platform sql-order-by

我正在使用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()
            }
        }
    }}

2 个答案:

答案 0 :(得分:0)

从您的代码中,似乎TOTALString。如果是这样,排序顺序就是预期的。您需要将TOTAL存储为数字。

答案 1 :(得分:0)

您可以使用orderBySortDescriptor:使用NSSortDescriptor。它会自动处理排序。