我试图通过swift获取本周来自iCal的所有活动的列表。 我想看看有多少事件以及它们属于哪些类别。 如何以编程方式完成此操作。 Eventkit是正确的选择还是应该使用AppleScript?是否有使用swift的Eventkit教程?我找不到一个。
答案 0 :(得分:5)
我使用以下单身人士访问EventStore
private let _SingletonSharedInstance = EventStore()
class EventStore {
let eventStore = EKEventStore ()
class var sharedInstance : EventStore {
return _SingletonSharedInstance
}
init() {
var sema = dispatch_semaphore_create(0)
var hasAccess = false
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { (granted:Bool, error:NSError?) in hasAccess = granted; dispatch_semaphore_signal(sema) })
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER)
if (!hasAccess) {
alert ("ACCESS", "ACCESS LONG")
let sharedWorkspace = NSWorkspace.sharedWorkspace()
sharedWorkspace.openFile("/Applications/System Preferences.app")
exit (0)
}
}
}
注意:alert
是我创建警报的私有方法之一。根据需要更换它。
要在我的应用中访问eventstore,我使用
let eventStore = EventStore.sharedInstance.eventStore
...
for et in eventStore.calendarsForEntityType(EKEntityTypeEvent) {
// check calendars
}
关于当时事件存储的文档很完整,所以你可以从这里开始。