2012-03-03 6 views
1

私はリマインダーコンポーネントを持つアプリを開発中です。私はCalendar Storeを使用してカレンダーのリストを取得しています。ユーザーは、どのカレンダーにタスクを追加するかを選択する必要があります。問題は、CalCalendarはイベントカレンダーとタスクカレンダーを区別していないようです。カレンダーストア:イベントカレンダーとタスクカレンダーを区別する方法は?

NSArray* calendars = [[CalCalendarStore defaultCalendarStore] calendars]; 
for(CalCalendar* aCalendar in calendars) { 
    if(aCalendar.isEditable) { 
     NSLog(@"editable calendar: %@", aCalendar); 
    } 
} 

この出力:

editable calendar: CalCalendar <0x6e04d10> {UID = 8AA8FFAD-D781-47F7-9231-CF66E1753983; title = Work; notes = (null); color = NSCalibratedRGBColorSpace 0.054902 0.380392 0.72549 1; type = CalDAV; editable = 1} 
editable calendar: CalCalendar <0x6e05000> {UID = A7F4A1B2-D1CF-4A20-9F84-CD1A1E99773E; title = Home; notes = ; color = NSCalibratedRGBColorSpace 0.72549 0.054902 0.156863 1; type = CalDAV; editable = 1} 
editable calendar: CalCalendar <0x6e050f0> {UID = 43B14D2A-9976-461C-8EFE-5FA029381828; title = Personal; notes = (null); color = NSCalibratedRGBColorSpace 0.901961 0.784314 0 1; type = CalDAV; editable = 1} 
editable calendar: CalCalendar <0x6e05140> {UID = F42EC365-20AC-4251-B45E-FB7F169928F0; title = Mac; notes = (null); color = NSCalibratedRGBColorSpace 0.054902 0.380392 0.72549 1; type = Local; editable = 1} 
editable calendar: CalCalendar <0x6e05190> {UID = FF771FF9-3969-4001-BBA4-9B7B00E80291; title = Cloud 2; notes = (null); color = NSCalibratedRGBColorSpace 0.054902 0.380392 0.72549 1; type = CalDAV; editable = 1} 
editable calendar: CalCalendar <0x6e051e0> {UID = 40234537-869C-4CC2-89B9-DD4F7D36C169; title = Groceries; notes = ; color = NSCalibratedRGBColorSpace 0.443137 0.101961 0.462745 1; type = CalDAV; editable = 1} 

私は最初の2イベントカレンダーであることを知って、そして最後の4は、タスクリストです。また、iCalでは、イベントのイベントカレンダーとタスクのタスクカレンダーしか表示されないため、違いが分かります。

しかし、私は何かが欠落していない限り、これをプログラムで決定する方法はありません。

更新rdar://10377730のように、これに気付く唯一の人ではありません。私はちょうど私自身のレポートを提出しました。rdar://10980542

答えて

1

私はそれほど幸せではありませんが、私が今使っている回避策は単に各カレンダーにタスクを作成しようとしています。イベントカレンダーでタスクを作成しようとすると、エラーが発生します。それは少しのように見える:

関連する問題