【发布时间】:2015-04-29 14:48:04
【问题描述】:
IOS 新手在这里尝试在我的项目中实现一个开源日历控件 MADay,并将数据存储在核心数据中。日历控件不提供用于访问核心数据的文档。
我猜我需要在从与下面的“事件”数组对应的核心数据中提取事件后创建一个 NSArray。这就是全部?如果是这样,我该怎么做?
感谢您的任何建议。
这是来自库的数据源代码:
- (NSDate *)nextDayForDate:(NSDate *)date;
- (NSArray *)eventKitEventsForDate:(NSDate *)date;
- (NSArray *)eventKitEventsToMAEvents:(NSArray *)eventKitEvents;
@property (readonly) EKEventStore *eventStore;
@end
@implementation MAEventKitDataSource
- (NSArray *)dayView:(MADayView *)dayView eventsForDate:(NSDate *)date
{
return [self eventKitEventsToMAEvents:[self eventKitEventsForDate:date]];
}
- (NSArray *)weekView:(MAWeekView *)weekView eventsForDate:(NSDate *)date
{
return [self eventKitEventsToMAEvents:[self eventKitEventsForDate:date]];
}
- (EKEventStore *)eventStore
{
if (!_eventStore) {
_eventStore = [[EKEventStore alloc] init];
}
return _eventStore;
}
- (NSDate *)nextDayForDate:(NSDate *)date
{
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:1];
return [CURRENT_CALENDAR dateByAddingComponents:components toDate:date options:0];
}
- (NSArray *)eventKitEventsForDate:(NSDate *)startDate
{
NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate
endDate:[self nextDayForDate:startDate]
calendars:nil];
NSArray *events = [self.eventStore eventsMatchingPredicate:predicate];
return events;
}
- (NSArray *)eventKitEventsToMAEvents:(NSArray *)eventKitEvents
{
NSMutableArray *events = [[NSMutableArray alloc] init];
for (EKEvent *event in eventKitEvents) {
MAEvent *maEvent = [[MAEvent alloc] init];
maEvent.title = event.title;
maEvent.start = event.startDate;
maEvent.end = event.endDate;
maEvent.allDay = event.allDay;
maEvent.backgroundColor = [UIColor colorWithCGColor:event.calendar.CGColor];
maEvent.textColor = [UIColor whiteColor];
[events addObject:maEvent];
}
return events;
}
【问题讨论】:
标签: ios core-data calendar controls eventkit