Это ответ json, который я получаю от почтальона после выполнения сетевого запроса
[
{
"employeeName": "Find a Sub ",
"startDate": "2020-02-25",
"startTime": "09:00:00",
"endTime": "16:00:00"
},
{
"employeeName": "Find a Sub ",
"startDate": "2020-02-25",
"startTime": "09:00:00",
"endTime": "16:00:00"
},
{
"employeeName": "Find a Sub ",
"startDate": "2020-02-25",
"startTime": "09:00:00",
"endTime": "16:00:00"
},
{
"employeeName": "Find a Sub ",
"startDate": "2020-02-24",
"startTime": "09:00:00",
"endTime": "16:00:00"
},
{
"employeeName": "Find a Sub ",
"startDate": "2020-02-24",
"startTime": "09:00:00",
"endTime": "16:00:00"
}]
Это структура моей модели, в которой я анализирую свои json данные
struct jobsData:Decodable
{
let employeeName:String?
let startTime:String?
let endTime:String?
var startDate:String?
init(employeeName:String?=nil,
startTime:String?=nil,
endTime:String?=nil,
startDate:String?=nil){
self.employeeName=employeeName
self.startTime=startTime
self.endTime=endTime
self.startDate=startDate
}}
Я использую json декодер для декодирования данных, поступающих после запроса urlSession. Теперь мне нужно манипулировать ответом таким образом, чтобы количество разделов uicollectionview было бы startDate, а его текст заголовка был бы его текстом, например, в В приведенном выше случае будет два раздела uicollectionview. Элементами каждого раздела будет количество объектов в ответе json, соответствующее этой дате, как в предыдущем случае, в разделе будет три элемента с датой 2020-02-25 и два элемента в разделе с датой 2020-02-24. у меня проблема в том, что я не знаю ни одного из разделов и ни одного из элементов в каждом разделе, так как данные являются динамическими c, которые поступают из API. как я могу манипулировать ответом json, чтобы добавить их в uicollectionview, как я уже говорил { ссылка } эта ссылка была полезной, но я не знаю, как отсортировать мои данные, так как в приведенной выше ссылке было только два ключа, один для сортировки, а другой для сбора данных, но у меня несколько ключей.
Отредактировано: это моя функция источника данных коллекции. Как я могу показать данные в разных разделах
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath)as! AvailableJobsCell
let sTime=self.timeInAmPm(String: UserInformation[indexPath.item].startTime!)
let eTime=self.timeInAmPm(String: UserInformation[indexPath.item].endTime!)
cell.jobAddedTime.text="\(sTime) - \(eTime)"
cell.jobTitle.text=UserInformation[indexPath.item].employeeName!
cell.schoolName.text="\(UserInformation[indexPath.item].organizationName ?? "")\n\(UserInformation[indexPath.item].organizationAddress ?? "")"
cell.jobNo.text=UserInformation[indexPath.item].confirmationNumber!
cell.personOnHiatus.text=UserInformation[indexPath.item].positionDescription!
cell.index=indexPath
cell.delegate=self
return cell
}
Информация пользователя имеет тип [JobsData]