为什么我的GDataEntryCalendarEvent中没有任何时间?

时间:2012-02-07 11:12:08

标签: objective-c ios google-api google-calendar-api gdata

我正在使用GDataServiceGoogleCalendar匿名从公共网址获取GDataFeedCalendarEvent。但我绝对无法从任何生成的GDataEntryCalendarEvent对象中检索时间。我可以阅读标题,所以我相信API可以运行,但不知何故,数组在某处丢失了。

服务实例化如下:

- (GDataServiceGoogleCalendar *)calendarService {

    static GDataServiceGoogleCalendar* service = nil;

    if (!service) {
        service = [[GDataServiceGoogleCalendar alloc] init];

        [service setShouldCacheResponseData:YES];
        [service setServiceShouldFollowNextLinks:YES];
        [service setIsServiceRetryEnabled:YES];
    }

    return service;
}

这是检索数据的代码:

for (GDataEntryCalendarEvent *event in eventEntries) {
    NSString *title = [[event title] stringValue];

    GDataDateTime *startTime = nil;
    GDataDateTime *endTime = nil;

    NSArray *times = [event times];
    GDataWhen *when = nil;
    if ([times count] > 0) {
        when = [times objectAtIndex:0];
        startTime = [when startTime];
        endTime = [when endTime];
    }
}

我的代码或连接方式有什么问题?示例应用程序成功检索日期。

2 个答案:

答案 0 :(得分:0)

很抱歉,我无法回答您的代码有什么问题。我对事件发生的日期有疑问,这是我的解决方案对我很有用:

希望它会对你有所帮助:

         NSArray *events = [feed entries];  

        [events enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
              GDataEntryEvent *entry = [events objectAtIndex:idx];

             for (NSUInteger i=0; i<[[entry times] count]; i++) {
             NSDate * startDate = [[[[entry times] objectAtIndex:i] startTime] date];
             NSDate * endDate = [[[[entry times] objectAtIndex:i] endTime] date];
         } 
         }];

可能有更好的方法,但这有效。

答案 1 :(得分:0)

Google API要求使用实际识别的用户甚至访问公共数据。 因此,在使用经过身份验证的用户帐户之前,不会授予对大多数API调用的访问权限。