0

我正在尝试仅从特定日历中获取事件。在我的 iPhone 上,我添加了一个日历“CalendarTest”。我想要做的是在我的应用程序中只从该日历中获取事件。我正在做以下事情。

self.defaultCalendar = [eventStore calendarWithIdentifier:@"CalendarTest"];
 NSArray *calendarArray = [NSArray arrayWithObject:defaultCalendar];
                 // asynchronous callback on the main thread
                 [events removeAllObjects];
                 NSLog(@"Fetching events from EventKit between %@ and %@ on a GCD-managed background thread...", fromDate, toDate);
                 dispatch_async(eventStoreQueue, ^{
                     NSDate *fetchProfilerStart = [NSDate date];
                     NSPredicate *predicate = [eventStore predicateForEventsWithStartDate:fromDate endDate:toDate calendars:calendarArray];
                     NSArray *matchedEvents = [eventStore eventsMatchingPredicate:predicate];
                     dispatch_async(dispatch_get_main_queue(), ^{
                         NSLog(@"Fetched %d events in %f seconds", [matchedEvents count], -1.f * [fetchProfilerStart timeIntervalSinceNow]);
                         [events addObjectsFromArray:matchedEvents];
                         [delegate loadedDataSource:self];
                     });
                 });

但是当我构建并运行时,我收到以下错误,它会因以下错误而崩溃。

2012-11-20 11:45:35.445 CalendarApp[2685:1d03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'

有人有想法吗?亲切的问候!

4

1 回答 1

-1

我认为您应该将 self.defaultCalendar 添加到您的 calendarArray。这可能会奏效。

于 2013-01-25T10:50:47.810 回答