我有一个事件(称为“测试事件”),从凌晨2点开始。11月6日,上午10点结束。11月24日。当我试图通过指定一天的范围来查找事件时,我可以找到所有日子(11月6日、11月7日、11月23日)的(11月24日除外)。
每当用户选择新的一天时,都会调用以下方法:
- (void)loadItemsFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate
{
NSLog(@"loadItemsFromDate");
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSLog(@"%@ to %@", [dateFormatter stringFromDate:fromDate], [dateFormatter stringFromDate:toDate]);
// Create the predicate from the event store's instance method
NSPredicate *predicate = [self.store predicateForEventsWithStartDate:fromDate
endDate:toDate
calendars:nil];
NSLog(@"predicateFormat: %@", [predicate predicateFormat]);
// Fetch all events that match the predicate
self.currentDayEvents = [self.store eventsMatchingPredicate:predicate];
NSLog(@"single day events:");
for(EKEvent *event in self.currentDayEvents)
{
NSLog(@"title: %@, start: %@, end: %@", event.title, [dateFormatter stringFromDate:event.startDate], [dateFormatter stringFromDate:event.endDate]);
}
NSLog(@"\n");
}下面是用户选择11月6日时的日志(可以找到"Test“):
loadItemsFromDate
11/6/12, 12:00 AM to 11/6/12, 11:59 PM
predicateFormat: EKEventPredicate start:11/6/12, 12:00 AM; end:11/6/12, 11:59 PM; cals:(null)
single day events:
title: Vote, start: 11/6/12, 12:00 AM, end: 11/6/12, 11:59 PM
title: Test Event, start: 11/6/12, 2:00 AM, end: 11/24/12, 10:00 AM从11月7日到22日,这些日志看起来都与此日志相似,该日志用于11月23日(可以找到“测试事件”):
loadItemsFromDate
11/23/12, 12:00 AM to 11/23/12, 11:59 PM
predicateFormat: EKEventPredicate start:11/23/12, 12:00 AM; end:11/23/12, 11:59 PM; cals:(null)
single day events:
title: Test Event, start: 11/6/12, 2:00 AM, end: 11/24/12, 10:00 AM下面是11月24日的日志(不像预期的那样工作,因为它没有返回"Test“):
loadItemsFromDate
11/24/12, 12:00 AM to 11/24/12, 11:59 PM
predicateFormat: EKEventPredicate start:11/24/12, 12:00 AM; end:11/24/12, 11:59 PM; cals:(null)
single day events:为什么不找到11月24日的活动,即使活动在上午10点结束。那一天?我正在运行iOS 6.0.1。
发布于 2012-11-18 00:54:18
不幸的是,我相信iOS代码中存在一个bug。我的复制步骤:
我还不知道如何破解这个问题,但我可以验证我的应用程序中的代码是否显示出与您相同的问题。
https://stackoverflow.com/questions/13264877
复制相似问题