Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ios中创建具有复杂规则的提醒_Ios_Eventkit_Ekeventkit - Fatal编程技术网

在ios中创建具有复杂规则的提醒

在ios中创建具有复杂规则的提醒,ios,eventkit,ekeventkit,Ios,Eventkit,Ekeventkit,我想用一个复杂的规则创建一个重复提醒,即 提醒将有开始日期和结束日期 提醒仅在特定的工作日重复 在开始日期和结束日期之间的选定日期,它们将在特定时间发生 看起来很接近,但就我对文档的理解而言,我认为我将不得不使用事件的组合 我需要指向创建提醒的方向的指针,这些提醒发生在一天中的特定时间->一周中的特定日期->特定开始日期和结束日期内 多谢各位 编辑 我尝试过以下事情,遇到了一些问题,取得了一些成功 EKEvent *event = [EKEvent eventWithEventStore:kE

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

  • 提醒将有开始日期和结束日期
  • 提醒仅在特定的工作日重复
  • 在开始日期和结束日期之间的选定日期,它们将在特定时间发生

  • 看起来很接近,但就我对文档的理解而言,我认为我将不得不使用事件的组合

    我需要指向创建提醒的方向的指针,这些提醒发生在一天中的特定时间->一周中的特定日期->特定开始日期和结束日期内

    多谢各位

    编辑

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

    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点可以是相对的,但时间必须固定。我如何才能做到这一点?

    你找到解决办法了吗,因为我也需要开发同样的东西!
    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");