在iOS 12中,我试图列出日历。我可以打印日历ID,但是标题全为空白。我在做什么错了?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let status = EKEventStore.authorizationStatus(for: EKEntityType.event)
switch (status) {
case EKAuthorizationStatus.notDetermined:
EKEventStore().requestAccess(to: .event, completion: {
(granted: Bool, error: Error?) in
if granted != true {
print("Access not granted")
}
})
case EKAuthorizationStatus.authorized:
print("Access granted")
case EKAuthorizationStatus.restricted, EKAuthorizationStatus.denied:
print("Access restricted or denied")
}
print("Calendars:")
for c in EKEventStore().calendars(for: EKEntityType.event) {
print(" \(c.calendarIdentifier):\(c.title)")
}
}
答案 0 :(得分:0)
我不确定为什么,但是这段代码显示了iOS 12 Simulator中的事件标题。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let status = EKEventStore.authorizationStatus(for: EKEntityType.event)
let eventStore = EKEventStore() //<-
switch (status) {
case EKAuthorizationStatus.notDetermined:
eventStore.requestAccess(to: .event, completion: {
(granted: Bool, error: Error?) in
if granted != true {
print("Access not granted")
}
})
case EKAuthorizationStatus.authorized:
print("Access granted")
case EKAuthorizationStatus.restricted, EKAuthorizationStatus.denied:
print("Access restricted or denied")
}
print("Calendars:")
for c in eventStore.calendars(for: EKEntityType.event) {
print(" \(c.calendarIdentifier):\(c.title)",c)
}
}
也许,在访问EKEventStore
属性时,您需要强烈引用EKCalendar
的实例。