上篇主要說了日歷事件恶座,這篇這要說提醒事項。
提醒事項數(shù)據(jù)可以設(shè)置的內(nèi)容比較少沥阳,所有操作起來也相對簡單跨琳。
廢話不多說。
讀取提醒事項
//日歷桐罕,iCloud家庭湾宙,工作,訂閱冈绊,生日
//來查找所有的reminders
NSPredicate*pre =[self.eventStorepredicateForRemindersInCalendars:only3A];
//異步方法侠鳄。
[self.eventStorefetchRemindersMatchingPredicate:precompletion:^(NSArray *_Nullable ? reminders) {
//異步查找出提醒事項數(shù)組reminders,這里可根據(jù)需求進一步進行對數(shù)組的操作
}
reminders 數(shù)組里存的是EKReminder 對象死宣。
列舉EKReminder 的一些屬性:
title:標題
notes:備注
priority:優(yōu)先級(NSUInteger)? 0無級別伟恶,1級別高---9級別低(1-4高,5中等毅该,6-9低)
completed:是否已完成
completionDate:完成時間
alarms:提醒數(shù)組(數(shù)組里是EKAlarm對象博秫, 可以獲得跟鬧鐘相關(guān)的數(shù)據(jù),如具體時間眶掌,偏移秒數(shù)...)
添加一條提醒事項
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:[now dateByAddingTimeInterval:30]];
EKReminder *reminder = [EKReminder reminderWithEventStore:es];
reminder.title = @"提醒的標題";
NSCalendar *cal = [NSCalendar currentCalendar];
[cal setTimeZone:[NSTimeZone systemTimeZone]];
NSInteger flags = NSYearCalendarUnit | NSMonthCalendarUnit |NSDayCalendarUnit |NSHourCalendarUnit | NSMinuteCalendarUnit |NSSecondCalendarUnit;
reminder.startDateComponents = [cal components:flags fromDate:[now dateByAddingTimeInterval:30]];//開始時間
reminder.dueDateComponents = [cal components:flags fromDate:[now dateByAddingTimeInterval:30]]; //結(jié)束時間
reminder.completionDate = [now dateByAddingTimeInterval:30];
[reminder setCalendar:[self.eventStore defaultCalendarForNewReminders]];
reminder.priority = 1;//優(yōu)先級
[reminder addAlarm:alarm];
NSError *err = nil;
if([self.eventStore saveReminder:reminder commit:YES error:&err]){
NSLog(@"創(chuàng)建成功!");
}else{
NSLog(@"創(chuàng)建失敗%@",err);
}
//記得commit:YES操作一次提交一次挡育。
刪除提醒事項
[reminderArrayenumerateObjectsUsingBlock:^(id_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {
EKReminder*reminder =(EKReminder*)obj;
/*如果你有不止一個EKReminder需要刪除,好的做法是不要一個一個的提交朴爬,而是全部刪除即寒,在最后一次性提交。這個也適用于增加新的事件到存儲器中*/
NSError*error =nil;
BOOLsuccess = [self.eventStoreremoveReminder:remindercommit:NOerror:&error];
if(!success) {
NSLog(@"刪除錯誤");
}else{
NSLog(@"本次刪除成功");
}
}];
//一次性全部提交修改
NSError*commitErr =nil;
BOOLcommitSuccess = [self.eventStorecommit:&commitErr];
if(!commitSuccess) {
NSLog(@"提交到事件庫錯誤");
}else{
NSLog(@"成功一次性全部提交到事件庫");
}