iOS 添加日歷提醒事件

每次一用到日歷就去問度娘,真是夠了!那這次就自己寫一個(gè)吧!!其實(shí)也就是訪問兩個(gè)對(duì)象
--> EKEventStore 事件超市
--> EKEvent 事件對(duì)象
可能還需要添加一個(gè)鬧鐘 --> EKAlarm

一蒸辆、權(quán)限問題
首先訪問日歷需要導(dǎo)入 <EventKit/EventKit.h> 這個(gè)框架,
當(dāng)然析既,在iOS 10 以后的 infoplist 里面少不了 Privacy - Calendars Usage Description 這個(gè)玩意呀躬贡!

二、代碼伺候

1眼坏、當(dāng)然有了上面的這些操作后你就可以風(fēng)騷了拂玻。

EKEventStore *store = [[EKEventStore alloc] init];

if ([store respondsToSelector:@selector(requestAccessToEntityType:completion:)]) {
    
    [store requestAccessToEntityType:(EKEntityTypeEvent) completion:^(BOOL granted, NSError * _Nullable error) {
       
        dispatch_async(dispatch_get_main_queue(), ^{

            
            if (error) {
                NSLog(@"添加失敗,,錯(cuò)誤了檐蚜。魄懂。。");
            } else if (!granted) {
                NSLog(@"不允許使用日歷闯第,沒有權(quán)限");
            } else {
                
                EKEvent *event = [EKEvent eventWithEventStore:store];
                event.title = @"這是一個(gè) title";
                event.location = @"這是一個(gè) location";
                
                
                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
                
                NSDate *date = [formatter dateFromString:@"2018-05-05 11:22:33"];
                
                // 提前一個(gè)小時(shí)開始
                NSDate *startDate = [NSDate dateWithTimeInterval:-3600 sinceDate:date];
                // 提前一分鐘結(jié)束
                NSDate *endDate = [NSDate dateWithTimeInterval:60 sinceDate:date];
                
                event.startDate = startDate;
                event.endDate = endDate;
                event.allDay = NO;
                
                // 添加鬧鐘結(jié)合(開始前多少秒)若為正則是開始后多少秒市栗。
                EKAlarm *elarm2 = [EKAlarm alarmWithRelativeOffset:-20];
                [event addAlarm:elarm2];
                EKAlarm *elarm = [EKAlarm alarmWithRelativeOffset:-10];
                [event addAlarm:elarm];
                
                [event setCalendar:[store defaultCalendarForNewEvents]];
                
                NSError *error = nil;
                [store saveEvent:event span:EKSpanThisEvent error:&error];
                if (!error) {
                    NSLog(@"添加時(shí)間成功");
                    //添加成功后需要保存日歷關(guān)鍵字
                    NSString *iden = event.eventIdentifier;
  // 保存在沙盒,避免重復(fù)添加等其他判斷
                    [[NSUserDefaults standardUserDefaults] setObject:iden forKey:@"my_eventIdentifier"];
                    [[NSUserDefaults standardUserDefaults] synchronize];
                }
                
            }
        });
    }];
}

2咳短、 查找某個(gè)指定的事件
EKEventStore *myEventStore = [[EKEventStore alloc] init];
// 獲取上面的這個(gè)ID呀填帽。
NSString *identifier = [NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"my_eventIdentifier"]];
EKEvent *event = [myEventStore eventWithIdentifier:identifier];

3、刪除指定的事件
__block BOOL isDeleted = NO;

dispatch_async(dispatch_get_main_queue(), ^{
    
    NSError *err = nil;
    
    isDeleted = [myEventStore removeEvent:event span:EKSpanThisEvent commit:YES error:&err];
    if (!err) {
        NSLog(@"刪除日歷成功");
        [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"my_eventIdentifier"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
    
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诲泌,一起剝皮案震驚了整個(gè)濱河市盲赊,隨后出現(xiàn)的幾起案子铣鹏,更是在濱河造成了極大的恐慌敷扫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诚卸,死亡現(xiàn)場離奇詭異葵第,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)合溺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門卒密,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棠赛,你說我怎么就攤上這事哮奇。” “怎么了睛约?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵鼎俘,是天一觀的道長。 經(jīng)常有香客問我辩涝,道長贸伐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任怔揩,我火速辦了婚禮捉邢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘商膊。我一直安慰自己伏伐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布晕拆。 她就那樣靜靜地躺著秘案,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阱高,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天赚导,我揣著相機(jī)與錄音,去河邊找鬼赤惊。 笑死吼旧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的未舟。 我是一名探鬼主播圈暗,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼裕膀!你這毒婦竟也來了员串?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤昼扛,失蹤者是張志新(化名)和其女友劉穎寸齐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抄谐,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渺鹦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛹含。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毅厚。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浦箱,靈堂內(nèi)的尸體忽然破棺而出吸耿,到底是詐尸還是另有隱情,我是刑警寧澤酷窥,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布咽安,位于F島的核電站,受9級(jí)特大地震影響竖幔,放射性物質(zhì)發(fā)生泄漏板乙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一拳氢、第九天 我趴在偏房一處隱蔽的房頂上張望募逞。 院中可真熱鬧,春花似錦馋评、人聲如沸放接。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纠脾。三九已至玛瘸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苟蹈,已是汗流浹背糊渊。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慧脱,地道東北人渺绒。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像菱鸥,于是被迫代替她去往敵國和親宗兼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容