Swift 将事件转换为按日期排序的二维数组

Swift 将事件转换为按日期排序的二维数组,swift,Swift,我有一个按日期排序的事件数组。我希望每天[星期一],[星期二],…都有一个单独的部分。。。。 如何创建如下所示的二维数组? 我如何在适当的部分中获得每个事件 以下解决方案首先在字典中按工作日对基于事件的开始日期进行分组,然后将字典转换为以“今天优先”排序的二维数组 首先设置要使用的日历和日期格式化程序 let locale = Locale(identifier: "en_US_POSIX") var calendar = Calendar.current calendar.

我有一个按日期排序的事件数组。我希望每天[星期一],[星期二],…都有一个单独的部分。。。。 如何创建如下所示的二维数组? 我如何在适当的部分中获得每个事件


以下解决方案首先在字典中按工作日对基于事件的开始日期进行分组,然后将字典转换为以“今天优先”排序的二维数组

首先设置要使用的日历和日期格式化程序

let locale = Locale(identifier: "en_US_POSIX")
var calendar = Calendar.current
calendar.locale = locale
let formatter = DateFormatter()
formatter.locale = locale
formatter.dateFormat = "EEEE"
将事件分组

let byWeekday = Dictionary(grouping: events, by: { formatter.string(from: $0.startDate) }) 
把工作日安排得井井有条

let weekdays = calendar.weekdaySymbols
let todayIndex = weekdays.firstIndex(of: formatter.string(from: Date())) ?? calendar.weekdaySymbols.startIndex
let sortedWeekdays = weekdays[todayIndex..<weekdays.endIndex] + weekdays[weekdays.startIndex..<todayIndex]

如何使用text=[yourArray组件通过字符串连接:@“\n”];用我的二维数组
let byWeekday = Dictionary(grouping: events, by: { formatter.string(from: $0.startDate) }) 
let weekdays = calendar.weekdaySymbols
let todayIndex = weekdays.firstIndex(of: formatter.string(from: Date())) ?? calendar.weekdaySymbols.startIndex
let sortedWeekdays = weekdays[todayIndex..<weekdays.endIndex] + weekdays[weekdays.startIndex..<todayIndex]
var eventsByDay = [[EKEvent]]()

for day in sortedWeekdays {
    eventsByDay.append(byWeekday[day] ?? [])
}