我想借助我的餐桌。 我有这个代码部分:
func ReSort() {
CoreDataItems.sortInPlace({$0.RowName< $1.RowName})
tableView.reloadData()
}
按下按钮后此功能将调用。 但我怎么能解决这个问题,如果我第一次按下按钮,排序功能就会这样排序:
$0.RowName < $1.RowName
第二次这样:
$0.RowName > $1.RowName
等等。
答案 0 :(得分:1)
您需要将排序的当前状态存储在实例变量中,例如
var sortAscending : Bool = true
现在你可以这样做:
func ReSort() {
CoreDataItems.sortInPlace({sortAscending ? $0.RowName < $1.RowName : $0.RowName > $1.RowName})
sortAscending = !sortAscending
tableView.reloadData()
}
sortAscending
的值将在比较中的>
和<
之间进行选择。作业
sortAscending = !sortAscending
排序完成后,将在true
和false
之间切换。
具有相同效果的较短但略显不易读的代码使用==
运算符替代XOR
值Bool
上的反转func ReSort() {
CoreDataItems.sortInPlace({sortAscending == ($0.RowName < $1.RowName) })
sortAscending = !sortAscending
tableView.reloadData()
}
:
let image = UIImage(named: "nameOfImageInXCAssets")