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

calendarArray に self.defaultCalendar を追加する必要があると思います。それはうまくいくかもしれません。

于 2013-01-25T10:50:47.810 に答える