ios - 如何正确获取一组 EKCalendars

标签 ios swift ekeventstore ekcalendar

我现在开发一个显示 iCloud EKCalendar 列表的 iOS 应用程序。 我的swift代码可以得到一组iCloud EKCalendars,但是顺序总是不一样。 谁能给我一些建议,让我整理一下?

let eventStore = EKEventStore()
let sources = eventStore.sources
for source in sources {
    if (source.title == "iCloud") {
        let calendars = source.calendars(for: .event)
        for calendar in calendars {
            print("calendar title = " + calendar.title)
        }
    }
}

代码结果示例:

calendar title = title1
calendar title = title6
calendar title = title5
calendar title = title3
calendar title = title4
calendar title = title2

最佳答案

所以 let calendars = source.calendars(for: .event)类型为 Set<EKCalendar> , 根据定义 Set是无序的数据类型,所以每当你遍历一个集合时,它总是有不同的顺序,唯一的是 Set强制执行的是它所设置的对象只有一个实例。

如果您想订购日历,您必须自己订购,一种是通过 title 订购。或 calendarIdentifier .

关于ios - 如何正确获取一组 EKCalendars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51288691/

相关文章:

ios - 谷歌日历数据的 NSDateFormatter dateFormat

ios - 如何在 iOs 中获取用户的可用性通知?

objective-c - 使用开始日期获取 iPhone 日历中的所有事件

ios - 从 EKEventStore 获取事件并在 Swift iOS8 的 tableView 中显示

ios - 使用 Swift 构建 Cocoapod 并依赖于 Objective-C 框架

android - Phonegap 禁用摄像头配置

ios - 打开谷歌地图应用程序以从另一个应用程序进行导航

ios - CocoaPods 生成的项目的 .travis.yml 中无法识别语言

ios - 查看 iOS 中的多态性

ios - 原型(prototype) iOS 应用程序崩溃且没有任何痕迹