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 に答える