日历相关EKEvent的学习记录
来源:互联网 发布:java开发 笔试题 编辑:程序博客网 时间:2024/05/16 11:11
判断是否可以访问日历
EKEventStore *store = [[EKEventStore alloc] init]; [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { if (granted == YES) { NSLog(@"同意"); }else{ NSLog(@"不同意"); } }];
获取日历事件
// 获取适当的日期(Get the appropriate calendar) NSCalendar *calendar = [NSCalendar currentCalendar]; // 创建起始日期组件(Create the start date components) NSDateComponents *oneDayAgoComponents = [[NSDateComponents alloc] init]; oneDayAgoComponents.day = -1; NSDate *oneDayAgo = [calendar dateByAddingComponents:oneDayAgoComponents toDate:[NSDate date] options:0]; // 创建结束日期组件(Create the end date components) NSDateComponents *oneYearFromNowComponents = [[NSDateComponents alloc] init]; oneYearFromNowComponents.year = 1; NSDate *oneYearFromNow = [calendar dateByAddingComponents:oneYearFromNowComponents toDate:[NSDate date] options:0]; // 用事件库的实例方法创建谓词 (Create the predicate from the event store's instance method) NSPredicate *predicate = [store predicateForEventsWithStartDate:oneDayAgo endDate:oneYearFromNow calendars:nil]; // 获取所有匹配该谓词的事件(Fetch all events that match the predicate) NSArray *events = [store eventsMatchingPredicate:predicate]; for (EKEvent *e in events) { NSLog(@"%@",e.title); NSLog(@"%@",e.startDate); NSLog(@"%@",e.endDate); NSLog(@"-------------------------"); }
添加一个日历事件
// Get the event store object self.eventStore = [[EKEventStore alloc] init]; // Create a new event EKEvent *event = [EKEvent eventWithEventStore:self.eventStore]; // Create NSDates to hold the start and end date NSDate *startDate = [[NSDate alloc] init]; NSDate *endDate = [[NSDate alloc] init]; // Set properties of the new event object event.title = @"这是测试"; event.startDate = [NSDate dateWithTimeIntervalSinceNow:-60*60]; event.endDate = [NSDate dateWithTimeIntervalSinceNow:-30]; event.allDay = NO; // set event's calendar to the default calendar [event setCalendar:[self.eventStore defaultCalendarForNewEvents]]; // Create an NSError pointer NSError *err; // Save the event [self.eventStore saveEvent:event span:EKSpanThisEvent error:&err]; self.idf = [NSString stringWithFormat:@"%@",event.eventIdentifier]; NSLog(@"%@",event.eventIdentifier); // Test for errors if (err == noErr) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Event Created" message:@"How about that?" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil]; [alert show]; }
删除一个日历事件
EKEvent *eventToRemove = [self.eventStore eventWithIdentifier:self.idf]; if ([eventToRemove.eventIdentifier length] > 0) { NSError* error = nil; [self.eventStore removeEvent:eventToRemove span:EKSpanThisEvent error:&error]; if (error) { NSLog(@"%@",error); }else { NSLog(@"ok"); } }
修改一个日历事件
EKEvent *eventToRemove = [self.eventStore eventWithIdentifier:self.idf]; eventToRemove.title = @"已经修改"; // Save the event [self.eventStore saveEvent:eventToRemove span:EKSpanThisEvent error:nil];
参考文章:
http://www.16kan.com/question/detail/265397.html
http://blog.csdn.net/linqir/article/details/8588835
http://supershll.blog.163.com/blog/static/3707043620127284210222/
0 0
- 日历相关EKEvent的学习记录
- 关于NSCalendar 日历的学习记录
- 记录学习gitbook的相关
- 日历相关
- 日历相关
- 记录我的代码【02】小日历
- 9月26号 Android SQLiteDatabase 的相关学习记录
- OV Camera AE相关的寄存器学习配置记录
- Android学习记录之--eclispe相关环境的搭建
- 关于在git学习中的ssh相关问题的记录
- 【学习记录】5.2 数组相关的基本算法
- OV Camera AE相关的寄存器学习配置记录
- [Oracle]学习相关网址记录
- Android ADB学习--相关记录
- 学习记录二 接口相关
- pip 的相关记录
- RoboWare的相关记录
- 记录:动态日历生成
- Mysql Timestamp 总是最新的 须注意onupdate
- cocos2dx小游戏源码(消灭星星)
- 最大子段和问题
- ADO.NET实体数据框架中存储过程的使用
- 验证码生成代码
- 日历相关EKEvent的学习记录
- FLEX 树形菜单例子(三)
- c# 字符串的格式化
- property和attribute的区别
- Ehcache 整合Spring 使用页面、对象缓存
- 关于Applications must be ready for upload on iTunes Connect
- 长尾关键词策略
- Mirama :将头戴设备结合手势操作
- IOS检测网络连接状态