如何在没有任何谓词的情况下检索存储在EKEventStore中的所有事件

时间:2011-08-22 08:00:43

标签: objective-c

如何检索存储在EKEventStore中而没有任何谓词的所有事件

我的方法仅基于具有startdate和enddate的谓词。能帮忙吗?

提前感谢。

2 个答案:

答案 0 :(得分:1)

DistantPast和DistantFuture不起作用,显然Apple不喜欢它的时间跨度太大。但是,由于过去最多只能获得2个月的事件,我发现这确实有效:

NSDate *startDate = [[NSDate date] dateByAddingTimeInterval:-604800*10];   //This is 10 weeks in seconds   
NSPredicate *pred = [self.eventStore predicateForEventsWithStartDate:startDate endDate:[NSDate distantFuture] calendars:nil];

答案 1 :(得分:0)

编辑(1/30/17):这个答案已经过时了;看看Bob的答案。

-

对不起,这个答案可能有点晚了,但对于那些到此搜索的人来说:

您仍然需要使用谓词,但您可以将开始日期设为[NSDate distantPast],将结束日期设为[NSDate distantFuture]

例如,如果你有一个名为“eventStore”的EKEventStore,这将获取“calendarArray”中包含的日历的所有日历事件:

NSPredicate *fetchCalendarEvents = [self.eventStore predicateForEventsWithStartDate:[NSDate distantPast] endDate:[NSDate distantFuture] calendars:calendarArray];

NSArray *allEvents = [self.eventStore eventsMatchingPredicate:fetchCalendarEvents];