我们的问题: iOS用户启动我们的应用程序并通过iCloud启用日历集成(他们有设置> iCloud>日历已检查) 我们的应用为他们填充了新的iCloud日历。
稍后,如果用户通过“设置”应用禁用了iCloud日历,并返回到我们的应用,则我们的应用无法知道此功能已被禁用。任何查找日历的检查仍会显示iCloud日历(即使它已在“设置”中打开)
有关解决此问题的任何提示或建议吗?
答案 0 :(得分:3)
逻辑是,检查并存储本地日历源,然后检查iCloud日历。如果我们检测到iCloud,实际检查并查看iCloud中是否有日历(以检测iCloud Cals是否已关闭)以及iCloud Cals是否已关闭使用本地cal。
在我们推出GMail和Google Calendars之前工作得很好......另一天的另一场战斗。如果有人对此有所了解,非常感谢。似乎我们必须通过Google Cal API并在那里挂钩。
EKSource *localCalSource;
self.calendarSource = nil;
for (EKSource *source in eventStore.sources)
{
if (self.calendarSource == nil && source.sourceType == EKSourceTypeLocal)
{
self.calendarSource = source;
localCalSource = self.calendarSource;
TLog([self isLocalLoggingOn], "Found local cal source!");
}
// if iCloud is enabled, grab that source and return it
if (source.sourceType == EKSourceTypeCalDAV && [[source.title lowercaseString] isEqualToString:@"icloud"])
{
if([source calendarsForEntityType:EKEntityTypeEvent].count>0)
{
//Check to see if Calendar is enabled on iCloud
self.calendarSource = source;
}else{
//Calendar is Disabled use LOCAL
self.calendarSource = localCalSource;
}
break;
TLog([self isLocalLoggingOn], @"Found %@", source.title);
}
}