gpt4 book ai didi

ios - 返回带有日历 WithIdentifier 的单个日历

转载 作者:可可西里 更新时间:2023-11-01 00:37:33 24 4
gpt4 key购买 nike

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

的 ID

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

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 而不是一个可读的名称。您需要像这样从您的 store 中检索它们:

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

以后你可以像这样使用它

calendar = store.calendarWithIdentifier(calUid)

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com