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明确知道其中的差异,因为它只显示事件的事件日历和任务的任务日历。
但似乎没有办法通过Calendar Store API来以编程方式确定这一点,除非我错过了一些东西。
更新:我看到我不是唯一注意到这一点的人,因为我发现了rdar://10377730。我刚刚提交了自己的报告,作为rdar://10980542