ios - 使用 calendarWithIdentifier 返回单个日历

标签 ios macos swift calendar eventkit

我正在尝试调用一个在创建事件时获取日历的方法。我确信这个方法是为了使用 calendarWithIdentifier 来获取

这是我用于创建事件并调用获取日历的方法的代码。我需要调用特定的日历

var store = EKEventStore()

func applicationDidFinishLaunching(aNotification: NSNotification) {
// ask for permission
// call methods
}

// Create new calendar
func createCalendar() -> EKCalendar? {
    var calendar = EKCalendar(forEntityType: EKEntityTypeEvent, eventStore: self.store)
    calendar.title = "Calendarname"
    // ...
    return calendar
}

func createEvent(){      
    var newEvent : EKEvent = EKEvent(eventStore: store)
    var error : NSError? = nil
    newEvent.title = "day off"
    newEvent.location = "London"

    var startDate : String = "2015-07-16";
    var dateFmt1 = NSDateFormatter()
    dateFmt1.dateFormat = "yyyy-MM-dd"
    var date1:NSDate = dateFmt1.dateFromString(startDate)!;

    var endDate : String = "2015-07-17";
    var dateFmt2 = NSDateFormatter()
    dateFmt2.dateFormat = "yyyy-MM-dd"
    var date2:NSDate = dateFmt2.dateFromString(endDate)!;

    newEvent.startDate = date1
    newEvent.endDate = date2
    newEvent.notes = "testing the event"
    newEvent.calendar = getCalendar()

    self.store.saveEvent(newEvent, span: EKSpanThisEvent, commit: true, error: nil)

}

func getCalendar() -> EKCalendar? {
  // ...
}

我知道这一点

func calendarWithIdentifier(_ identifier: String!) -> EKCalendar!

来自 Apple 的 EventKit 文档,用于通过 id 返回日历。所以我使用日历的名称(“Calendarname”)作为参数,但这似乎不正确。它返回零。

有人可以帮我正确获取日历吗?谢谢

最佳答案

方法calendarWithIdentifier需要一个UID而不是一个可读的名称。您需要像这样从您的商店检索它们:

var calUid:String = "?"
for cal in store.calendarsForEntityType(EKEntityTypeEvent) { 
  if cal.title == "Calendarname" { calUid = cal.calendarIdentifier }
}

稍后您可以像这样使用它

calendar = store.calendarWithIdentifier(calUid)

关于ios - 使用 calendarWithIdentifier 返回单个日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969032/

相关文章:

ios - 从通知中心托盘中删除特定的推送通知

ios - 是否可以使用 Dropbox 替代服务器后端?

cocoa - Mac 中的导航应用

macos - 以编程方式创建 ICNS : "Unsupported Image Size"

ios - Xcode 6 Beta 6 上的 iPhone 5c 配置

ios - 如何更改tableView中分隔符的颜色?

ios - block 执行后如何返回值? swift

ios - 如何让 UITableView 的最后一个单元格分隔符占据全长?

ios - 使用 WKWebView 创建自定义 ORKStep

ios - 如何在 Swift 4 中安装 APP 后仅显示一次 UIAlert 文本字段?