/* イベントストアへの接続 */
leteventStore = EKEventStore()
/* リマインダー追加の権限取得 */
let status = EKEventStore.authorizationStatus(for: .reminder)
var isAuth = false
switch status {
case .notDetermined:
isAuth = false
case .restricted:
isAuth = false
case .denied:
isAuth = false
case .authorized:
isAuth = true
}
if !isAuth {
eventStore.requestAccess(to: .event, completion: {
(granted, error) in
if granted {
}
else {
print("使用拒否")
return
}
})
}
14.
/* リマインダーの登録 */
letreminder = EKReminder(eventStore: eventStore)
let calendars = eventStore.calendars(for: .reminder)
for cal in calendars {
print(cal)
}
reminder.calendar = eventStore.defaultCalendarForNewReminders()
reminder.title = "BUKURO.swift"
do {
try eventStore.save(reminder, commit: true)
}
catch let error {
print(error)
}
2018-01-28 23:05:28.331076+0900 GettingThingsDone[2151:776673] [EventKit] Error getting default calendar for new remin
2018-01-28 23:05:28.331815+0900 GettingThingsDone[2151:776673] [EventKit] No object ID provided. Will not find out if th
Error Domain=EKErrorDomain Code=1 "No calendar has been set." UserInfo={NSLocalizedDescription=No calendar has bee
15.
/* リマインダーの検索 */
letstartDate = Calendar.current.date(from: DateComponents(
year: 2018, month: 1, day: 1, hour: 00, minute: 00, second: 00))
let endDate = Calendar.current.date(from: DateComponents(
year: 2019, month: 1, day: 31, hour: 23, minute: 59, second: 59))
let defaultCalendar = eventStore.defaultCalendarForNewEvents
let predicate = eventStore.predicateForIncompleteReminders(
withDueDateStarting: startDate!, ending: endDate!, calendars: [defaultCalendar!])
eventStore.fetchReminders(matching: predicate, completion: {
(reminders) in
for reminder in reminders! {
print(reminder)
}
})
/* リマインダーの削除 */
do {
try eventStore.remove(reminder, commit: true)
}
catch let error {
print(error)
}