gpt4 book ai didi

ios - 如何使用 swift 按时间对 UITableview 数组数据进行排序

转载 作者:行者123 更新时间:2023-12-02 06:02:37 26 4
gpt4 key购买 nike

就我而言,我正在尝试将 JSON 数据加载到 UITableview 中。在这里,我借助 Codable 和 Decodable 方法从 API 获取 JSON 数据。现在,我没有任何 ID 来对列表进行排序,因为我正在使用无序的 dictionary。那么,如何实现这一目标呢?

注意:基于 meeting_id 需要对我的 tableview 数据加载进行排序。

JSON 示例

{
"status": true,
"data": [
{
"meeting_id": "37",
"title": "abc",
"sort_key": "21:00",
},
{
"meeting_id": "41",
"title": "a1",
"sort_key": "03:00",
}
]
}

可编码结构

struct Events: Codable {
let status: Bool
let data: [Eventdata]
}

struct Eventdata: Codable {
let meetingID, title, sort_key: String

enum CodingKeys: String, CodingKey {
case meetingID = "meeting_id"
case title
case sortKey = "sort_key"
}
}

我的代码解码

var eventsData = [Eventdata]()

do {
let decoder = try JSONDecoder().decode(Events.self, from: data)
let status = decoder.status
if status == true {
self.eventsData = decoder.data
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.tableView.reloadData()
}
} else {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
//self.Alert(Meesage: ServerValidation().servervalidation_msg)
}
}
} catch {
print(error)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
//self.Alert(Meesage: ServerError().servererror_msg)
}
}

最佳答案

尝试

self.eventsData = decoder.data
self.eventsData = self.eventsData.sorted(by: { $0.meetingID > $1.meetingID })
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.tableView.reloadData()
}

关于ios - 如何使用 swift 按时间对 UITableview 数组数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58282022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com