同じ種類のイベントを2つのカレンダーに保存したい場合、2つの別々のイベントオブジェクトを作成する必要があるようですが、それは正しいですか?
例として、以下のコードを参照してください。イベントは「ワーカー」にリンクされたカレンダーに保存され、次に「タスク」にリンクされたカレンダーに保存されます。
- (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)にのみ保存されるようです。