- (void)createNewEventAndNewReminder
{
EKEventStore *es = [[EKEventStore alloc] init];
NSDate *now = [NSDate date];
//事件
[es requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
if (granted) {
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:[now dateByAddingTimeInterval:30]];//30秒
EKEvent *event = [EKEvent eventWithEventStore:es];
event.title = @"This is a new event";
event.startDate = now;
event.endDate = [now dateByAddingTimeInterval:30];
[event setAllDay:YES];
[event addAlarm:alarm];
[event setCalendar:[es defaultCalendarForNewEvents]];
[es saveEvent:event span:EKSpanThisEvent commit:YES error:nil];
NSError *err = nil;
if([es saveEvent:event span:EKSpanThisEvent commit:YES error:&err]){
NSLog(@"saved!");
}else{
NSLog(@"%@",err);
}
}else{
NSLog(@"%@",error);
}
}];
//提醒
[es requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
if (granted) {
EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:[now dateByAddingTimeInterval:30]];
EKReminder *reminder = [EKReminder reminderWithEventStore:es];
reminder.title = @"This is a reminder";
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]]; //结束时间
reminder.completionDate = [now dateByAddingTimeInterval:30];
[reminder setCalendar:[es defaultCalendarForNewReminders]];
reminder.priority = 1;//优先级
[reminder addAlarm:alarm];
NSError *err = nil;
if([es saveReminder:reminder commit:YES error:&err]){
NSLog(@"saved!");
}else{
NSLog(@"%@",err);
}
}else{
NSLog(@"%@",error);
}
}];
}
分享到:
相关推荐
在iOS平台上,为用户提供日历提醒功能是一项常见的需求。...通过分析这个项目的代码,我们可以深入理解`EventKit`和`EventKitUI`框架在实际应用中的工作原理和使用方式,这对于开发涉及日历提醒功能的iOS应用至关重要。
在iOS开发中,日历功能是一项常见的需求,特别是在构建如酒店预订类的应用中。...这个项目不仅涉及到日历功能,还可能涉及到网络请求、数据持久化和用户界面设计等多个方面,是iOS开发中的一个综合实践案例。
在iOS中,我们通常使用EventKit框架来处理日历相关的任务。EventKit框架提供了一个接口,使得开发者能够访问用户设备上的日历数据,包括添加、删除和修改事件。 二、引入EventKit框架 首先,在项目中引入EventKit...
1. **EventKit框架导入**:源码会包含`#import <EventKit/EventKit.h>`,引入必要的头文件,以便使用EventKit框架。 2. **权限请求**:在iOS中,访问用户的日历数据需要用户的授权。你需要调用`EKEventStore`的`...
实现这一功能需要监听按钮的点击事件,并使用 EventKit 添加一个新的事件到用户日历,该事件表示签到的时间和日期。 3. **点击日历签到**: 当用户在日历视图中选择特定日期时,应用应提供签到选项。这需要监听...
iOS提供了很多SDK,比如EventKit(日历和提醒),MapKit(地图服务),AddressBook(联系人管理),让开发者可以方便地在自己的应用中实现类似的功能。 3. **10照片库与相机**: 在iOS中,访问用户的照片库和使用...
开发者可以创建一个EKEventStore实例,并用它来执行查询或保存事件。 3. **事件对象**:EKEvent对象代表一个具体的日历事件,包含日期、时间、标题、地点等信息。开发者可以通过设置这些属性来创建新的事件,或者...
首先,要使用EventKit框架,你需要在Xcode项目中导入它。在你的Swift文件顶部添加以下代码: ```swift import EventKit ``` 接下来,我们需要获取EventStore实例,它是EventKit框架中的主要类,负责处理日历数据。...
在"Calendar-master"项目中,开发者可能已经使用了`EventKitUI`和`EventKit`这两个库,它们分别提供了用户界面组件和数据管理接口。`EventKitUI`包含预设的日历视图,如`EKEventEditViewController`,用于编辑和显示...
可以使用`EventKit`的`EKAuthorizationStatus`枚举来检查当前的授权状态,并请求权限: ```swift func requestCalendarAccess() { let eventStore = EKEventStore() eventStore.requestAccess(to: .event, ...
1. 使用EKEventStore类实例获取日历存储服务。 2. 请求访问权限:调用eventStore.requestAccess(to:EKEntityType.event, completion:),在completion回调中处理权限状态。 三、获取和创建日历 1. 通过eventStore....
在iOS应用中实现日历功能通常涉及到`EventKit`框架的使用,该框架提供了访问系统日历并进行操作的能力。以下是一些关于如何在iOS应用中实现日历功能的关键知识点: 1. **EventKit框架**: - `EventKit`是iOS中的一...
使用`EKEventStore`的`default`属性获取默认的日历存储实例,然后调用`calendars(for:EKEntityType.event)`获取所有可用的日历。可以选择一个特定的日历进行操作,或者创建一个新的日历。 4. **添加签到事件** ...
在使用这两行代码之前,确保已经在项目中导入了`EventKit`框架: ```swift import EventKit ``` 接下来,我们需要创建一个`EKCalendarViewController`实例,它是苹果提供的默认日历视图控制器。这一步通常就是所谓...
3. **定义事件**:创建一个`EKEvent`实例,设置其属性如开始时间、结束时间、标题、地点等。例如: ```swift let event = EKEvent(eventStore: eventStore) event.title = "会议" event.startDate = Date() event....
使用`EKEventStore`实例的`fetchCalendars(for:)`方法可以获取可用的日历列表。用户可以选择其中一个日历来存储事件。 5. **事件操作** - **创建事件**:使用`EKEvent`类创建新事件,并设置其开始时间、结束时间...
"Calendar"这个文件可能是包含示例代码、教程或Xcode项目,用于展示如何使用EventKit框架在iOS应用中实现这些功能。通过解压并研究这个文件,开发者可以更好地理解和掌握如何在自己的应用中集成日历功能。记住,良好...
2. **获取日历实例**:`EKEventStore`类可以用来获取所有可用的日历,例如默认的日历或其他自定义日历。 3. **创建事件**:通过`EKEvent`类,你可以创建新的事件对象,设置事件的标题、开始时间、结束时间、地点等...
3. 在需要使用datePicker的地方,实例化VurigCalendar类并进行配置。 4. 连接datePicker的值改变事件,处理用户的选择。 总结来说,VurigCalendar是一个针对iOS开发的快速集成datePicker解决方案,它简化了日历选择...
不过,这个实例可能没有直接使用EventKit,而是自定义了一个视图来呈现日历选择器。 2. **自定义日历视图**:LPHCalendar可能是自定义的日历视图控件,它可能包含一个UICollectionView或UITableView,用以展示日期...