数组未排序
Array not getting sorted
我有 array
个 structs
。在 struct
中,我有两个 NSDate
对象:textLabel
和 detailTextlabel
。我正在尝试将 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}
您应该为变量选择更好的名称。这是日期,不是标签。
我有 array
个 structs
。在 struct
中,我有两个 NSDate
对象:textLabel
和 detailTextlabel
。我正在尝试将 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}
您应该为变量选择更好的名称。这是日期,不是标签。