我在这个范围日期的 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 个在哪里?请问我快疯了有人可以帮助我吗?