【问题标题】:Creating calendar in Swift在 Swift 中创建日历
【发布时间】:2015-07-16 11:41:07
【问题描述】:

让我们考虑以下代码行:

reminder.calendar = appDelegate!.eventStore!.defaultCalendarForNewReminders()

这表示我将提醒放入默认设备的日历中。如何使用代码创建自己的日历?

我想创建自己的提醒的原因是我希望能够管理那里的所有提醒。

【问题讨论】:

    标签: ios swift eventkit


    【解决方案1】:

    为特定类型创建一个新的EKCalendar实例,分配标题和来源并保存到数据库中

    let calendar = EKCalendar(for: .reminder, eventStore: eventStore)
    calendar.title = "MyNewCalendar"
    calendar.source = eventStore.defaultCalendarForNewReminders()?.source
    do {
        try eventStore.saveCalendar(calendar, commit: true)
    } catch { print(error) }
    

    检索提醒日历有点棘手

    var myCalendar: EKCalendar?
    let calendars = eventStore.calendars(for: .reminder)
    if let filteredCalendar = calendars.first(where: {$0.title == "MyNewCalendar"}) {
        myCalendar = filteredCalendar
    } else {
        print("count not find reminder calendar 'MyNewCalendar'")
    }
    

    【讨论】:

    • 谢谢,如果您不介意,我还有一个问题。我尝试以这种方式访问​​此日历:reminder.calendar = appDelegate!.eventStore!.calendarWithIdentifier("MyNewCalendar") 结果是:Reminder failed with error Optional("No calendar has been set.")
    • 不介意可以看看吗? stackoverflow.com/questions/31456504/…
    • Apple 现在建议在尾随闭包之前添加“where:”键,这样代码就会发生如下变化: if let filteredCalendar = calendars.first(where: {$0.title == "MyNewCalendar"}) { myCalendar = 过滤日历 }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多