系統(tǒng)的日歷和提醒事項(xiàng)的調(diào)用與交互(swift版)

一翔试、打開系統(tǒng)的app
1、打開日歷:
if UIApplication.sharedApplication().canOpenURL(NSURL(string:"calshow:”)!) {
      UIApplication.sharedApplication().openURL(NSURL(string:"calshow:”)!)
 }

2施流、打開提醒事項(xiàng):
if UIApplication.sharedApplication().canOpenURL(NSURL(string:"x-apple-reminder://")!) {
       UIApplication.sharedApplication().openURL(NSURL(string:"x-apple-reminder://")!)
}


二慨飘、向系統(tǒng)的日歷或提醒事項(xiàng)中添加信息:
1确憨、向日歷中添加事件:
(1)、創(chuàng)建事件驅(qū)動(dòng)器:
 let eventStore = EKEventStore()

(2)瓤的、授權(quán)訪問日歷:
 eventStore.requestAccessToEntityType(.Event) { (result, erro) in  }

(3)休弃、編輯事件:
   let event = EKEvent(eventStore: self.eventStore)
   // 事件名稱
   event.title = "提醒" // 事件名稱
   event.notes = "備注你妹" // 事件備注

   // 事件地點(diǎn)
   event.location = "東升科技園"

   // 這個(gè)設(shè)置為true 開始結(jié)束時(shí)間就不會(huì)顯示
   event.allDay = true

   // 開始時(shí)間
   event.startDate = NSDate()
   // 結(jié)束時(shí)間
   event.endDate   = NSDate(timeIntervalSinceNow: 3600)

   event.addAlarm(EKAlarm(relativeOffset: -60*15))  //  設(shè)置提醒
 
   // 必須設(shè)置:系統(tǒng)的日歷
   event.calendar = self.eventStore.defaultCalendarForNewEvents

(4)、添加事件:
   do {
        let _ = try self.eventStore.saveEvent(event, span: .ThisEvent)
                    
   } catch {
        print(error)
 }



2圈膏、向事項(xiàng)中添加事件:
(1)玫芦、創(chuàng)建事件驅(qū)動(dòng)器:
 let eventStore = EKEventStore()

(2)、授權(quán)訪問提醒事項(xiàng):
  eventStore.requestAccessToEntityType(.Reminder) { (result, erro) in  }

(3)本辐、編輯事項(xiàng):
  let reminde = EKReminder(eventStore: self.eventStore)
                
       // 事項(xiàng)名稱
       reminde.title = "測(cè)試提醒"
       // 事項(xiàng)地點(diǎn)
       reminde.location = "東升科技園"
                
       // 事項(xiàng)等級(jí):1-9桥帆,1最高
       reminde.priority = 1
                
        reminde.notes = "測(cè)試測(cè)試測(cè)試測(cè)試測(cè)試"
                 
        // 事項(xiàng)開始事件
         let start = NSDateComponents()
         start.day = 5
         start.year = 2016
         start.month = 9
         start.hour = 22
         start.minute = 30
         start.timeZone = NSTimeZone.systemTimeZone()
         reminde.startDateComponents = start
                
         // 事項(xiàng)結(jié)束事件
         let end = NSDateComponents()
         end.day = 8
         end.year = 2016
         end.month = 9
         end.hour = 23
         end.minute = 30
         end.timeZone = NSTimeZone.localTimeZone()
         reminde.dueDateComponents = end
   // 說明:
   設(shè)置了結(jié)束時(shí)間,在事項(xiàng)中只會(huì)顯示結(jié)束時(shí)間而不會(huì)顯示開始時(shí)間
                
    reminde.addAlarm(EKAlarm(relativeOffset: -60*15)) // 添加提醒時(shí)間

    // 必須要設(shè)置:默認(rèn)的事項(xiàng)提示app
    reminde.calendar = self.eventStore.defaultCalendarForNewReminders()

(4)慎皱、添加事項(xiàng):
  do {
      let _ = try self.eventStore.saveReminder(reminde, commit: true)
                    
  } catch {
     print(error)
  }

三老虫、查找系統(tǒng)的日歷或提醒事項(xiàng)中信息:
1、查找日歷事件:
(1)茫多、創(chuàng)建事件驅(qū)動(dòng)器:
let eventStore = EKEventStore()

(2)祈匙、授權(quán)訪問日歷:
eventStore.requestAccessToEntityType(.Event) { (result, erro) in  }

(3)、查找事件:
    1)天揖、創(chuàng)建查找條件
let predicate = self.eventStore.predicateForEvents(withStart: Date(timeIntervalSinceNow: -3600), end: Date(), calendars: nil)

    2)夺欲、利用條件進(jìn)行查找:由于是線程同步,耗時(shí)長(zhǎng)今膊,建議在其他線程操作
     查找方法1:
     let events = self.eventStore.events(matching: predicate)
     查找方法2:每找到一個(gè)就會(huì)調(diào)用閉包
    self.eventStore.enumerateEvents(matching: predicate, using: { (event,pointer) in})


2些阅、查找提醒事項(xiàng):
(1)、創(chuàng)建事件驅(qū)動(dòng)器:
 let eventStore = EKEventStore()

(2)斑唬、授權(quán)訪問提醒事項(xiàng):
eventStore.requestAccessToEntityType(.Reminder) { (result, erro) in  }

(3)市埋、查找事件:
      1)、創(chuàng)建查找條件
     /// 獲取所有的事項(xiàng)條件
     let pre0 = self.eventStore.predicateForReminders(in: nil)
                
     // 指定時(shí)間內(nèi)未完成的事項(xiàng)條件
    let pre1 = self.eventStore.predicateForIncompleteReminders(withDueDateStarting: Date(timeIntervalSinceNow:3600), ending: Date(timeIntervalSinceNow:3600), calendars: nil)
                
    // 指定時(shí)間內(nèi)已完成的事項(xiàng)條件
   let pre2 = self.eventStore.predicateForCompletedReminders(withCompletionDateStarting: Date(timeIntervalSinceNow:-3600), ending: Date(timeIntervalSinceNow:3600), calendars: nil)

2)恕刘、利用條件進(jìn)行查找:由于是線程同步缤谎,耗時(shí)長(zhǎng),建議在其他線程操作
    /// 獲取事項(xiàng)
    let _ = self.eventStore.fetchReminders(matching: pre0, completion: { (reminders) in })


四褐着、刪除系統(tǒng)的日歷或提醒事項(xiàng)中信息:

1坷澡、刪除日歷事件:
do {
    let _ = try self.eventStore.remove(event, span: .thisEvent)           
} catch {
     print(error)
 }


2、刪除事項(xiàng)提示:
do {
    let _ = try self.eventStore.remove((reminders?.first)!, commit: true)
} catch {
    print(error)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末含蓉,一起剝皮案震驚了整個(gè)濱河市频敛,隨后出現(xiàn)的幾起案子镣陕,更是在濱河造成了極大的恐慌,老刑警劉巖姻政,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岂嗓,居然都是意外死亡汁展,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門厌殉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來食绿,“玉大人,你說我怎么就攤上這事公罕∑鹘簦” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵楼眷,是天一觀的道長(zhǎng)铲汪。 經(jīng)常有香客問我,道長(zhǎng)罐柳,這世上最難降的妖魔是什么掌腰? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮张吉,結(jié)果婚禮上齿梁,老公的妹妹穿的比我還像新娘。我一直安慰自己肮蛹,他們只是感情好勺择,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伦忠,像睡著了一般省核。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昆码,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天芳撒,我揣著相機(jī)與錄音,去河邊找鬼未桥。 笑死笔刹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冬耿。 我是一名探鬼主播舌菜,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼亦镶!你這毒婦竟也來了日月?” 一聲冷哼從身側(cè)響起袱瓮,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎爱咬,沒想到半個(gè)月后尺借,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡精拟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年燎斩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜂绎。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栅表,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出师枣,到底是詐尸還是另有隱情怪瓶,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布践美,位于F島的核電站洗贰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏陨倡。R本人自食惡果不足惜哆姻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玫膀。 院中可真熱鬧矛缨,春花似錦、人聲如沸帖旨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽解阅。三九已至落竹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間货抄,已是汗流浹背述召。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蟹地,地道東北人积暖。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怪与,于是被迫代替她去往敵國(guó)和親夺刑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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