【发布时间】:2021-11-03 18:32:18
【问题描述】:
如何对从datestamp 字段动态生成的以下部分进行排序?例如2021-11-3的部分需要显示在2021-11-2上方的tableview中
数据戳格式: 2021-11-3
var sections = [mySections]()
var structure = [myStructure]()
private func fetchJSON() {
guard let url = URL(string: "test.com")
else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = "id=\1".data(using: .utf8)
URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data else { return }
do {
let decoder = JSONDecoder()
self.structure.sort { $0. datestamp > $1.datestamp }
let res = try decoder.decode([myStructure].self, from: data)
let grouped = Dictionary(grouping: res, by: { $0. datestamp })
let keys = grouped.keys.sorted()
self.sections = keys.map({mySections(date: $0, items: grouped[$0]!
)})
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
catch {
print(error)
}
}.resume()
}
我尝试在self.sections 下执行以下操作,但它没有做任何事情:
self.sections.sorted { $0.date > $1.date }
结构:
struct mySections {
let date : String
var items : [myStructure]
}
struct myStructure: Decodable {
let recordid: Int
let testname: Int
let datestamp: String
}
数据示例:
[
{
"recordid": 1,
"testname": "Jen",
"datestamp": "2021-11-3"
},
{
"recordid": 1,
"testname": "Jake",
"datestamp": "2021-11-2"
}
]
【问题讨论】:
-
不清楚
mySections的date字段是否设置准确——你还没有包含routeSections。您能否提供您的 JSON 以及使其成为 minimal reproducible example 所需的剩余代码? -
请看更新后的帖子
-
感谢您的帮助 - 请您看一下其他帖子,感谢您的帮助。 stackoverflow.com/questions/69860143/…
标签: swift