File tree Expand file tree Collapse file tree 3 files changed +11
-10
lines changed
Expand file tree Collapse file tree 3 files changed +11
-10
lines changed Original file line number Diff line number Diff line change @@ -19,17 +19,19 @@ import EventKit
1919 }
2020
2121 /// 將你的模型轉成 EKEvent,給編輯器預填
22- func makeEKEvent( from ce: CalendarEvent ) -> EKEvent {
22+ /// Returns nil when no writable calendar is available.
23+ func makeEKEvent( from ce: CalendarEvent ) -> EKEvent ? {
24+ guard
25+ let calendar = eventStore. defaultCalendarForNewEvents
26+ ?? eventStore. calendars ( for: . event) . first
27+ else { return nil }
28+
2329 let ek = EKEvent ( eventStore: eventStore)
2430 ek. title = ce. event
2531 ek. startDate = ce. startDate
2632 ek. endDate = ce. endDate
2733 ek. isAllDay = Calendar . current. isDate ( ce. startDate, inSameDayAs: ce. endDate)
28- if let calendar = eventStore. defaultCalendarForNewEvents
29- ?? eventStore. calendars ( for: . event) . first
30- {
31- ek. calendar = calendar
32- }
34+ ek. calendar = calendar
3335 return ek
3436 }
3537}
Original file line number Diff line number Diff line change @@ -28,8 +28,9 @@ struct EventView: View {
2828 Button {
2929 Task {
3030 if await eventManager. requestWriteAccess ( ) {
31- editorItem = EditItem (
32- ekEvent: eventManager. makeEKEvent ( from: event) )
31+ if let ekEvent = eventManager. makeEKEvent ( from: event) {
32+ editorItem = EditItem ( ekEvent: ekEvent)
33+ }
3334 }
3435 }
3536 } label: {
Original file line number Diff line number Diff line change @@ -45,8 +45,6 @@ import OSLog
4545 return delegate. events
4646 }
4747
48- if Task . isCancelled { throw CancellationError ( ) }
49-
5048 if let err = parser. parserError { throw err }
5149
5250 throw NSError (
You can’t perform that action at this time.
0 commit comments