5

我想创建一个具有复杂规则的重复提醒,即

  1. 提醒将有一个开始日期和结束日期。
  2. 提醒只会在特定的工作日重复。
  3. 在开始日期和结束日期之间的选定日期,它们将在特定时间发生。


- (id)initRecurrenceWithFrequency:(EKRecurrenceFrequency)type interval:(NSInteger)interval daysOfTheWeek:(NSArray *)days daysOfTheMonth:(NSArray *)monthDays monthsOfTheYear:(NSArray *)months weeksOfTheYear:(NSArray *)weeksOfTheYear daysOfTheYear:(NSArray *)daysOfTheYear setPositions:(NSArray *)setPositions end:(EKRecurrenceEnd *)end

似乎很接近,但据我了解文档,我认为我将不得不使用事件组合。

我需要指向创建提醒的方向

谢谢

编辑

我尝试过以下事情并遇到了一些问题并取得了一些成功

EKEvent *event = [EKEvent eventWithEventStore:kEVENTSTORE_SINGLTON];
    event.title = @"Event Title test";
    event.notes= @"Hope this one displays";
    NSArray* rulesArray = [event recurrenceRules];
    for (EKRecurrenceRule* rule in rulesArray) [event removeRecurrenceRule:rule];

    event.startDate = [NSDate date]; //today
    event.endDate = [event.startDate dateByAddingTimeInterval:60*60];  //set 1 hour meeting
    [event setCalendar:[kEVENTSTORE_SINGLTON defaultCalendarForNewEvents]];



    NSDate *date = [NSDate date];
    EKAlarm *alarm1 = [EKAlarm alarmWithAbsoluteDate:[date dateByAddingTimeInterval:60]];
        // [event addAlarm:alarm1];

    EKAlarm *arm=[EKAlarm alarmWithRelativeOffset:60];

    EKAlarm *alarm2 = [EKAlarm alarmWithAbsoluteDate:[date dateByAddingTimeInterval:120]];
        // [event addAlarm:alarm2];


    EKAlarm *alarm3 = [EKAlarm alarmWithAbsoluteDate:[date dateByAddingTimeInterval:180]];
        //  [event addAlarm:alarm3];

    EKAlarm *alarm4 = [EKAlarm alarmWithAbsoluteDate:[date dateByAddingTimeInterval:240]];
        //[event addAlarm:alarm4];

    EKRecurrenceRule *objRecurrenceRule=[[EKRecurrenceRule alloc]initRecurrenceWithFrequency:EKRecurrenceFrequencyWeekly interval:1 daysOfTheWeek:@[[EKRecurrenceDayOfWeek dayOfWeek:EKFriday]] daysOfTheMonth:nil monthsOfTheYear:nil weeksOfTheYear:nil daysOfTheYear:nil setPositions:nil end:[EKRecurrenceEnd recurrenceEndWithOccurrenceCount:1]];


        //[event addRecurrenceRule:objRecurrenceRule];
    event.recurrenceRules=@[objRecurrenceRule];
    event.alarms=@[arm];//if i add the relative alarm it works if i add absolute alarm it dosnt.
    NSError *err = nil;
    [kEVENTSTORE_SINGLTON saveEvent:event span:EKSpanFutureEvents commit:YES error:&err];
    if(err)
        NSLog(@"some error occured");

所以我观察到重复规则适用于相对警报,如果警报必须在每个星期五发生,那么发出绝对警报有什么意义

但我的要求是我希望每个星期五都响起警报说下午 5 点日期可以是相对的但时间必须固定我怎样才能做到这一点?

4

0 回答 0