通过EventKit可以对iOS日历事件进行读取,添加等操作。但网上找到的都是使用Objective-C来编写的。
下面提供一个Swift版的样例,演示如何添加一个事件以及获取所有的事件列表。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
import UIKitimport EventKitclass ViewController: UIViewController { override func viewDidLoad()
{ super.viewDidLoad() let eventStore:EKEventStore = EKEventStore() //
'EKEntityType.Reminder' or 'EKEntityType.Event' eventStore.requestAccessToEntityType(.Event,
completion: { granted,
error in if (granted)
&& (error == nil)
{ print("granted
\(granted)") print("error
\(error)") //
新建一个事件 let event:EKEvent = EKEvent(eventStore:
eventStore) event.title
= "新增一个测试事件" event.startDate
= NSDate() event.endDate
= NSDate() event.notes
= "这个是备注" event.calendar
= eventStore.defaultCalendarForNewEvents do{ try
eventStore.saveEvent(event, span: .ThisEvent) print("Saved
Event") }catch{} //
获取所有的事件(前后90天) let startDate=NSDate().dateByAddingTimeInterval(-3600*24*90) let endDate=NSDate().dateByAddingTimeInterval(3600*24*90) let predicate2
= eventStore.predicateForEventsWithStartDate(startDate, endDate:
endDate, calendars: nil) print("查询范围
开始:\(startDate) 结束:\(endDate)") let eV
= eventStore.eventsMatchingPredicate(predicate2) as [EKEvent]! if eV
!= nil { for i in eV
{ print("标题
\(i.title)" ) print("开始时间:
\(i.startDate)" ) print("结束时间:
\(i.endDate)" ) } } } }) } override func didReceiveMemoryWarning()
{ super.didReceiveMemoryWarning() }} |
本文介绍如何使用Swift和EventKit框架来实现对iOS设备上的日历事件进行读取和添加的功能。示例代码展示了请求访问权限、创建新事件以及检索指定时间范围内的所有事件。
2650

被折叠的 条评论
为什么被折叠?



