1

同じ種類のイベントを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)にのみ保存されるようです。

4

1 に答える 1

1

正しい。2 回保存することで、2 回目はイベントを別のカレンダーに移動して効果的に更新しています

于 2012-06-06T23:04:33.500 に答える