我正在使用快速和解析。我使用了'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()
            }
        }
    }}

最佳答案

从您的代码看来,TOTAL是一个String。如果是这样,则排序顺序将是预期的。您需要将TOTAL存储为数字。

关于swift - 快速解析查询orderbyDescending不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34824269/

10-10 13:37