0

嗨,我正在创建一个 iphone 应用程序,我在其中使用日历来显示事件。为此,我在我的项目中使用了 kal calender api https://github.com/klazuka/Kal,我需要根据开始日期和结束显示事件来自 json webservice 的日期,所以我必须在 kal 日历项目中进行更改,以便我可以调用我的开始日期和结束日期并显示该日期的事件。请提供代码。谢谢

4

1 回答 1

0

Kal git 中的 Holiday Example 是一个很好的起点。它还从 JSON 中获取事件并将其显示在 KalViewController tableView 中。

编辑: 我可以告诉你我做了什么,我必须在 Kal calenderView 中显示本地日历以及 JSON 事件

所以我没有更改 Kal 的任何实现来获取本机事件,但我确实为服务器事件添加了我自己的获取方法并将两个数组组合在一起。

我是这样做的,我使用了 nativeCal 示例并使用了与我的 kal 数据源相同的 eventkitDatasource.m

然后,在 KalViewDelegate 协议方法中

- (void)didSelectDate:(KalDate *)date 

我发送请求从服务器获取所选日期的事件,从服务器接收事件数组,然后将这些对象添加到 eventkitDatasource.m 中的数组,并在

- (NSArray *)eventsFrom:(NSDate *)fromDate to:(NSDate *)toDate

从本地日历和服务器事件返回事件。

这是我对方法的实现

- (NSArray *)eventsFrom:(NSDate *)fromDate to:(NSDate *)toDate
{
NSMutableArray *matches = [NSMutableArray array];
for (Meeting *meeting in events)
{
    if (IsDateBetweenInclusive(meeting.startDate, fromDate, toDate)){
        [matches addObject:meeting];
    }
}
if([arrServerEvents count]>0){
    [matches addObjectsFromArray:arrServerEvents];
}

return matches;
}

您还可以看到,我在这里创建了一个公共会议类,它具有 Ekevent 和我的服务器事件的属性。在将 EKEvents 更改为我的公共类对象

- (void)presentingDatesFrom:(NSDate *)fromDate to:(NSDate *)toDate delegate:(id<KalDataSourceCallbacks>)delegate{

方法,然后将这些对象添加到 eventkitDatasource.m 的本机事件数组中。

希望我足够清楚。

于 2013-04-16T09:47:30.380 回答