【发布时间】:2020-01-03 05:11:48
【问题描述】:
JSON 文件:
{
"success": 1,
"msg": "User Phone Usage",
"data": [
{
"date": "2019-12-19",
"val": [
{
"ride_id": 44,
"date": "2019-12-19 09:32:19",
"total_km": null,
"startTime": "2019-12-19 09:32:19",
"endTime": "2019-12-19 09:37:08",
"rides": 0
},
{
"ride_id": 43,
"date": "2019-12-19 09:28:16",
"total_km": null,
"startTime": "2019-12-19 09:28:16",
"endTime": "2019-12-19 09:32:23",
"rides": 0
},
{
"ride_id": 42,
"date": "2019-12-19 09:28:12",
"total_km": null,
"startTime": "2019-12-19 09:28:12",
"endTime": "2019-12-19 09:29:13",
"rides": 0
}
]
},
{
"date": "2019-12-13",
"val": [
{
"ride_id": 2,
"date": "2019-12-13 08:14:34",
"total_km": 12.64,
"startTime": "2019-12-13 08:14:34",
"endTime": "2019-12-18 03:49:43",
"rides": 2
}
]
},
{
"date": "2019-12-12",
"val": [
{
"ride_id": 1,
"date": "2019-12-12 06:59:26",
"total_km": 101.36,
"startTime": "2019-12-12 06:59:26",
"endTime": "2019-12-18 03:07:00",
"rides": 0
}
]
}
]
}
所以我必须将 tableview 部分标题设置为 (date) 并显示在该特定日期发生的事件。
下面是我必须实现的示例图片
部分标题是日期和总公里数,游乐设施是我要根据指定日期填充的行。 API 数据保存在模型类中,而不是字典格式,因此需要一些解决方案,我可以对数据进行排序并将其显示在表格视图中。
模型类:
class ShowDetails
{
var startRideDateTime:String?
var rideID:Int?
var endRideDateTime:String?
var totalKM:Double?
var rides:Int?
init(rideID: Int?,totalKM: Double?, startRideDateTime: String?, endRideDateTime: String?, rides: Int?) {
self.rideID = rideID
self.totalKM = totalKM
self.startRideDateTime = startRideDateTime
self.endRideDateTime = endRideDateTime
self.rides = rides
}
}
视图控制器代码: showdetailsArray 是 API Response 中保存的数组
func grouping()
{
let groupData = Dictionary(grouping: self.showDetailsArray){ (element) -> String in
return (element.startRideDateTime ?? "")
}
groupData.forEach { (key) in
print("VALUES")
print(groupData.values)
}
}
【问题讨论】:
-
到目前为止你有没有尝试过?
-
尝试了一些解决方案,但我无法实现。但现在我刚刚创建了一个可以保存的模型类。来自API的数据,也尝试了字典的分组方法,但无法提取值。 ``` let groupData = Dictionary(grouping: self.showDetailsArray){ (element) -> String in return (element.startRideDateTime ?? "") } groupData.forEach { (key) in print("VALUES") print(groupData .values) } ```
-
在此处添加您尝试过的代码。
-
我将编辑问题。这样会更清楚
-
为什么不使用 Codable