数组未排序

Array not getting sorted

我有 arraystructs。在 struct 中,我有两个 NSDate 对象:textLabeldetailTextlabel。我正在尝试将 textlabel 从最新到最旧 date/time 排序。我希望 detailTextLabel 也可以根据 textLabel 进行排序。我想反之亦然。这是我的代码:

struct Item {
    let textLabel : NSDate
    let detailTextLabel : NSDate
}

var myItem = [Item]()

myItem.insert(Item(textLabel: myDateSecond, detailTextLabel: anotherDateSecond), atIndex: 0)
myItem.insert(Item(textLabel: myDateThird, detailTextLabel: anotherDateThird), atIndex: 0)
myItem.insert(Item(textLabel: myDateFirst, detailTextLabel: anotherDateFirst), atIndex: 0)

@IBAction func sortButtonsAction(sender: UIButton) 
{
    if sender == firstBtn {
        myItem.sort({[=10=].textLabel.compare(.detailTextLabel) == NSComparisonResult.OrderedAscending})
    } else if sender == secondBtn {
        myItem.sort({[=10=].detailTextLabel.compare(.textLabel) == NSComparisonResult.OrderedAscending})
    }
    self.tableView.reloadData()
}

情况如下:

当我 select firstBtn 时,它按照我期望的方式排序。但是当我按下 secondBtn 时,没有任何反应。

我想要发生的事情

secondBtn 得到 selected 时,我希望 array 根据 detailTextLabel 数据进行排序。为什么没有发生这种情况?

按文本标签日期排序:

myItem.sort{[=10=].textLabel.compare(.textLabel) == NSComparisonResult.OrderedAscending}

按 detailTextLabel 日期排序:

myItem.sort{[=11=].detailTextLabel.compare(.detailTextLabel) == NSComparisonResult.OrderedAscending}

您应该为变量选择更好的名称。这是日期,不是标签。