Простой запрос CalendarStore ставит приложение в бесконечный цикл? - PullRequest
1 голос
/ 15 апреля 2010

Я рассчитывал добавить поддержку iCal в мое новое приложение, и все выглядело просто замечательно и без проблем работало на моей машине для разработки Mac OS X 10.6 Snow Leopard.

Теперь выглядит, в зависимости от того, что в вашем календаре, очень простой запрос ниже:

- (NSArray*) fetchCalendarEventsForNext50Minutes {

NSLog(@"fetchCalendarEventsForNext50Minutes");

NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];

NSDate* startDate = [[NSDate alloc] init];
NSDate* endDate = [startDate addTimeInterval: 50.0 * 60.0];

NSPredicate *eventsForTheNext50Minutes = [CalCalendarStore eventPredicateWithStartDate:startDate endDate:endDate
                                         calendars:[[CalCalendarStore defaultCalendarStore] calendars]];


// Fetch all events for this year
NSArray *events = [[CalCalendarStore defaultCalendarStore] eventsWithPredicate: eventsForTheNext50Minutes];

NSLog( @"fetch took: %f seconds", [NSDate timeIntervalSinceReferenceDate] - start );

return events;

}

производит трэш в пляжном мяче даже с довольно ограниченными событиями в магазине календаря.

Я что-то упустил здесь? Фрагмент кода в значительной степени точно из документации по адресу:

// Create a predicate to fetch all events for this year
NSInteger year = [[NSCalendarDate date] yearOfCommonEra];
NSDate *startDate = [[NSCalendarDate dateWithYear:year month:1 day:1 hour:0 minute:0     second:0 timeZone:nil] retain];
NSDate *endDate = [[NSCalendarDate dateWithYear:year month:12 day:31 hour:23 minute:59 second:59 timeZone:nil] retain];
NSPredicate *eventsForThisYear = [CalCalendarStore eventPredicateWithStartDate:startDate endDate:endDate
calendars:[[CalCalendarStore defaultCalendarStore] calendars]];

// Fetch all events for this year
NSArray *events = [[CalCalendarStore defaultCalendarStore]     eventsWithPredicate:eventsForThisYear];

Похоже, что это как-то связано с правилами повторения, но, насколько я вижу, в любом случае нет других способов извлечения событий из хранилища календаря.

Кто-нибудь еще сталкивался с этим?

С уважением,

Frank

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...