1

我想使用 iPhone 日历添加事件。

我从 github 尝试 ti.com.calendar 模块,但在这个模块中只保存 startTime EndTime、Title 和详细信息。但是,不要使用 allDay 重复或不提醒。

我如何使用这个。在日历中?

我还提醒用户通知。但是,在删除事件之后。通知未删除。

任何建议表示赞赏

4

1 回答 1

0

下面是代码的和平。闹钟日期用于匹配工作时间(用户不喜欢醒来做工作:)

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"];
于 2012-05-08T19:59:33.400 回答