2012-11-20 39 views
0

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

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]' 

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

+0

你能看到任何nslog输出吗? – jimpic

+0

不,它在这行崩溃NSArray * calendarArray = [NSArray arrayWithObject:_defaultCalendar]; – Steaphann

+0

然后就是没有日历标识符“CalendarTest” – jimpic

回答

-1

我认为你应该添加self.defaultCalendar到你的calendarArray。这可能会诀窍。

相关问题