predicateForEventsWithStartDate:endDate:calendars:EKEventStore不起作用

时间:2012-12-11 01:34:57

标签: ios6 ekevent ekeventstore

我已经在此范围日期的EKCalendar中保存了28个EKEvent:2012-01-01和2013-01-18,EKEvent都已​​存储,我可以在iCloud上的iOS日历中看到它,然后我想要全部检索这个EKEvent在2012-01-01和2013-01-18的范围内,我使用EKEventStore的这个方法:

predicateForEventsWithStartDate:endDate:calendars:

这是一个NSPredicate来获取日历中的事件,我通过开始日期2012-01-01和endDate:2013-01-18传递,所以返回我与EKEvent的数组只有8个元素,所以我的问题是为什么它找不到我所有的28个活动?我错了什么?

编辑:

这是我使用的完整代码:

NSDate* sourceDate2 = [dateFormat dateFromString:@"2012/01/01"];


    NSTimeZone* sourceTimeZone2 = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
    NSTimeZone* destinationTimeZone2 = [NSTimeZone systemTimeZone];

    NSInteger sourceGMTOffset2 = [sourceTimeZone2 secondsFromGMTForDate:sourceDate2];
    NSInteger destinationGMTOffset2 = [destinationTimeZone2 secondsFromGMTForDate:sourceDate2];
    NSTimeInterval interval2 = destinationGMTOffset2 - sourceGMTOffset2;

    NSDate* destinationDate2 = [[NSDate alloc] initWithTimeInterval:interval2 sinceDate:sourceDate2];

    NSTimeInterval time2 = floor([destinationDate2 timeIntervalSinceReferenceDate] / 86400.0) * 86400.0;

    NSDate *startDate = [NSDate dateWithTimeIntervalSinceReferenceDate:time2];

然后我使用相同的代码创建2013-01-18日期即endDate,然后我这样做:

EKEventStore *eventStore = [[EKEventStore alloc] init];

NSPredicate *predicateEvent = [eventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:[eventStore calendarsForEntityType:EKEntityTypeEvent]];

NSArray *eventArray = [eventStore eventsMatchingPredicate:predicateEvent];

eventArray只包含8个元素......其他20个元素在哪里?拜托,我疯了,有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

在您的设备上,转到:Settings > Mail, Contacts, Calendars,然后在Calendars子部分下转到Sync > All Events。不只是过去30天,60天等事件。