首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MBCalendarKit:将CKCalendarDataSource连接到核心数据

MBCalendarKit:将CKCalendarDataSource连接到核心数据
EN

Stack Overflow用户
提问于 2014-07-21 14:52:15
回答 1查看 163关注 0票数 0

我正在将MBCalendarKit与核心数据连接起来。

这是构建事件字典的代码:

代码语言:javascript
复制
for (Task *task in _taskArray)
{
    _event = [CKCalendarEvent eventWithTitle:[task valueForKey:@"title"] andDate:[task valueForKey:@"startDate"] andInfo:nil];
    [_eventsArray addObject:_event];
}
 // Moving events to Dictionary
[_calendarData setObject:_eventsArray forKey:_event.date];

在实现方法CKCalendarDataSource时,结果不是期望的结果。我获取日历中每个日期的数组中的所有事件,如下所示。

代码语言:javascript
复制
- (NSArray *)calendarView:(CKCalendarView *)calendarView eventsForDate:(NSDate *)date {
   return _calendarData[_event.date];
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 02:48:58

由于CKCalendarDataSource需要一种特定的字典格式,所以我不得不遍历eventsArray,而不是仅仅将它传递给_calendarData。

代码语言:javascript
复制
{
    "July 15, 2014" =     (
        "<CKCalendarEvent: 0x1123128e0>"
    );
    "July 16, 2014" =     (
        "<CKCalendarEvent: 0x11230fb10>",
        "<CKCalendarEvent: 0x11230ff00>"

    "July 18, 2014" =     (
        "<CKCalendarEvent: 0x11230d880>",
        "<CKCalendarEvent: 0x11230df30>"
    );
}
代码语言:javascript
复制
[eventsArray enumerateObjectsUsingBlock:^(id object, NSUInteger idx, BOOL *stop) {

    if ([_calendarData objectForKey:[[eventsArray objectAtIndex:idx]date]]) {
        // Dictionary already contains object with this date

        NSMutableArray *existingDate = [[NSMutableArray alloc]init];
        [existingDate addObjectsFromArray:[_calendarData objectForKey:[[eventsArray objectAtIndex:idx]date]]];
        [existingDate addObject:object];

        [_calendarData setObject:existingDate forKey:[[eventsArray objectAtIndex:idx]date]];
    }

    else {
        NSMutableArray *uniqueDate = [[NSMutableArray alloc]init];
        [uniqueDate addObject:object];
        [_calendarData setObject:uniqueDate forKey:[[eventsArray objectAtIndex:idx]date]];
    }
}];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24868172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档