0

我有一个iCal文件rRulerRule = "FREQ=WEEKLY;UNTIL=20140425T160000Z;INTERVAL=1;BYDAY=TU,TH";

我需要将此信息放入EKEvent

EKEvent *event;
event.recurrenceRules = ...

我拆分rRule并将其保存在NSArray

 NSArray * rules = [evento.rRule componentsSeparatedByString:@";"];
 event.recurrenceRules = rules;

但是会出现错误:

-[__NSCFString relationForKey:]: unrecognized selector sent to instance 0x21283350
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString relationForKey:]: unrecognized selector sent to instance 0x21283350'

你能帮助我吗?谢谢你的提前。

4

2 回答 2

4

我找到了使用 EKRecurrenceRule+RRULE 库的解决方案,它非常易于使用。

链接:https ://github.com/jochenschoellig/RRULE-to-EKRecurrenceRule

使用示例:

NSString *rfc2445String = @"FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2"; // The 2nd to last weekday of the month

// Result
EKRecurrenceRule *recurrenceRule = [[EKRecurrenceRule alloc] initWithString:rfc2445String];
NSLog(@"%@", recurrenceRule);
于 2014-02-17T09:40:09.533 回答
2

将字符串拆分为数组时,会得到一个字符串数组。但是该recurrenceRules属性需要一个对象数组EKRecurrenceRule。您必须自己解析字符串并将它们转换为EKRecurrenceRule对象。对于复杂的重复规则,应使用以下方法:

- (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

在此处查看文档

于 2014-02-17T08:51:53.710 回答