Aug*_*sto 1 sorting uitableview ios swift
我有一个应用程序来显示比特币价格的价值.当我点击列的标题时,我想要排序.
我正在尝试这样做,点击已被响应,但没有任何反应,列继续没有排序.
struct info {
let name: String
let coin: String
let change: Double
let price: Double
}
var ticker: Array<info> = []
@objc func tapChangeFunction(sender: UITapGestureRecognizer) {
self.ticker.sorted(by: {
$0.change > $1.change
})
DispatchQueue.main.async {
self.table.reloadData()
}
}
Run Code Online (Sandbox Code Playgroud)
您似乎忘记将已排序的数据分配回模型:
self.ticker = self.ticker.sorted(by: {
$0.change > $1.change
})
Run Code Online (Sandbox Code Playgroud)
sorted(by:)
返回一个已排序的新数组,旧的数组未被修改,请阅读文档:
返回集合的元素,使用给定的谓词作为元素之间的比较进行排序.
或者使用变异版本sort(by:)
(docs):
使用给定的谓词作为元素之间的比较,对集合进行排序.
self.ticker.sort(by: {
$0.change > $1.change
})
Run Code Online (Sandbox Code Playgroud)
边注:
您不必reloadData
异步调度,您已经在主线程上.