如果我想将相同类型的事件保存到两个日历中,似乎我必须创建两个单独的事件对象,这是正确的吗?
作为示例,请参阅下面的代码。事件被保存到链接到“工作人员”的日历,然后保存到链接到“任务”的日历。
- (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)。
最佳答案
正确。通过保存两次,第二次是通过将事件移动到不同的日历来有效地更新事件
关于objective-c - 将事件保存到 CalCalendar 是否只存储指向 CalEvent 的指针,而不是副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899134/