1

如果我想将同一种事件保存到两个日历中,看来我必须创建两个单独的事件对象,吗?

例如,请参见下面的代码。事件被保存到链接到“工作人员”的日历中,然后保存到链接到“任务”的日历中。

- (BOOL)setTask:(MJSTask *)aTask
   fromDate:(NSDate *)from
     toDate:(NSDate *)to
{
    NSError *err = nil;
    CalEvent *e = [CalEvent event];
    NSString *task = [[aTask shortName] uppercaseString];
    // Set the first calendar
    [e setTitle:task];
    [e setIsAllDay:NO];
    [e setStartDate:[aTask start]];
    [e setEndDate:[aTask end]];
    [e setLocation:[self lastName]];
    [e setCalendar:[self calendar]];
    if ( ![[CalCalendarStore defaultCalendarStore] saveEvent:e span:CalSpanThisEvent error:&err] )
    {
       <error handling>
    }
    // Set the second calendar
    NSString *titleString = [NSString stringWithFormat:@"%@ (%@)",[self lastName],task];
    [e setTitle:titleString];
    [e setLocation:[aTask longName]];
    [e setCalendar:[[aTask taskTemplate]calendar]];
    if ( ![[CalCalendarStore defaultCalendarStore] saveEvent:e span:CalSpanThisEvent error:&err] )
    {
        <error handling>
    }
    return FALSE;    
}

如果我注释掉日历 2 保存的行,我会在日历 1 中获得事件。但如果我不这样做,似乎这些对象只会保存到最后一个日历(日历 2)。

4

1 回答 1

1

正确的。通过保存两次,第二次通过将事件移动到不同的日历来有效地更新事件

于 2012-06-06T23:04:33.500 回答