我想使用 iPhone 日历添加事件。
我从 github 尝试 ti.com.calendar 模块,但在这个模块中只保存 startTime EndTime、Title 和详细信息。但是,不要使用 allDay 重复或不提醒。
我如何使用这个。在日历中?
我还提醒用户通知。但是,在删除事件之后。通知未删除。
任何建议表示赞赏
我想使用 iPhone 日历添加事件。
我从 github 尝试 ti.com.calendar 模块,但在这个模块中只保存 startTime EndTime、Title 和详细信息。但是,不要使用 allDay 重复或不提醒。
我如何使用这个。在日历中?
我还提醒用户通知。但是,在删除事件之后。通知未删除。
任何建议表示赞赏
下面是代码的和平。闹钟日期用于匹配工作时间(用户不喜欢醒来做工作:)
eventStore = [[EKEventStore alloc] init];
EKEvent *newEvent = [EKEvent eventWithEventStore:eventStore];
newEvent.calendar = eventStore.defaultCalendarForNewEvents;
NSString *titleForEvent = [NSString stringWithFormat:@"In country:%@ will be:\n%@ event",[mo valueForKey:@"name"],[mo valueForKey:@"necessaryData"]];
newEvent.title = titleForEvent;
newEvent.allDay = YES;
NSDate *date = [mo valueForKey:@"date"];
NSDate *dateAlarm = [mo valueForKey:@"dateAlarm"];
EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:[dateAlarm timeIntervalSinceDate:date]];
if (dateAlarm < [NSDate date]){
dateAlarm = [NSDate dateWithTimeIntervalSinceNow:+18000];
NSDateFormatter *dateForm = [[NSDateFormatter alloc]init];
[dateForm setDateFormat:@"%HH"];
NSString *hourOfAlarm = [dateForm stringFromDate:dateAlarm];
[dateForm release];
NSNumberFormatter *numberForm = [[NSNumberFormatter alloc] init];
NSNumber *hour = [numberForm numberFromString:hourOfAlarm];
[numberForm release];
int difference = 0;
if ([hour intValue] < 9) difference = (9 - [hour intValue]) *3600;
if ([hour intValue] > 17) difference = (17 - [hour intValue]) *3600;
if (difference != 0) {
NSTimeInterval interval = 18000 + difference;
dateAlarm = [NSDate dateWithTimeIntervalSinceNow:interval];
}
alarm = [EKAlarm alarmWithRelativeOffset:[dateAlarm timeIntervalSinceDate:date]];
}
newEvent.startDate = date;
newEvent.endDate = date;
//EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:[dateAlarm timeIntervalSinceDate:date]];
newEvent.alarms = [NSArray arrayWithObject:alarm];
NSError *error;
BOOL saved = [eventStore saveEvent:newEvent span:EKSpanThisEvent error:&error];
if (!saved && error) {
NSLog(@"%@",[error localizedDescription]);
} else [mo setValue:newEvent.eventIdentifier forKey:@"eventIdentifier"];