[英]EKEvent is not added according to EKRecurrenceRule
我正在尝试在日历上创建重复事件。 我创建了EKRecurrenceRule并将其设置为该事件。 但是,该事件不是根据我的重复规则创建的。
这是我的代码,
//just creating a recurrence rule for RRULE:FREQ=YEARLY;BYMONTH=6,7;BYDAY=1TH
// setting the values directly for testing purpose.
EKRecurrenceEnd *endRecurrence = nil;
NSMutableArray *monthsOfTheYearArray = [NSMutableArray array];
NSMutableArray *daysOfTheWeekArray = [NSMutableArray array];
//BYMONTH=6,7 (6 for june, 7 for july)
[monthsOfTheYearArray addObject:[NSNumber numberWithInt:6]];
[monthsOfTheYearArray addObject:[NSNumber numberWithInt:7]];
//BYDAY=1TH
[daysOfTheWeekArray addObject:[EKRecurrenceDayOfWeek dayOfWeek:5 weekNumber:1]];
endRecurrence = [EKRecurrenceEnd recurrenceEndWithEndDate:[self dateFromString:@"2018-12-15T22:30+06:00"]];
//create the recurrence rule here
EKRecurrenceRule *recurrence = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency: EKRecurrenceFrequencyYearly
interval:1
daysOfTheWeek:daysOfTheWeekArray
daysOfTheMonth:nil
monthsOfTheYear:monthsOfTheYearArray
weeksOfTheYear:nil
daysOfTheYear:nil
setPositions:nil
end:endRecurrence];
//setting the values for creating the event here
EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
event.title = @"testRecurrenceRule";
event.location = @"Dhaka";
[event setCalendar:[eventStore defaultCalendarForNewEvents]];
event.startDate = [self dateFromString:@"2013-06-18T21:00:00+06:00"];
event.endDate = [self dateFromString:@"2013-06-18T22:00:00+06:00"];
[event addRecurrenceRule: recurrence];
//save the event into calendar.
[self saveTheEvent:event eventStore:eventStore];
使用此代码,仅在6月的每个第一个星期四创建事件,为什么跳过7月?
请让我知道为什么未根据我设置的重复规则创建事件。
好。 在文档EKRecurrenceDayOfWeek类参考中 ,它说
一周中的某一天可以有一个星期号,以指定重复规则频率中的特定日期。 例如,星期几的天值为2,星期数为2,则在月度重复规则中代表每月的第二个星期二,在年度重复规则中代表每年的第二个星期二。 星期数为0的星期几将忽略其星期数。
您每年做一次频率,因此它将“ BYDAY = 1TH”解释为每年的第一个TH。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.