2012-11-29 68 views
3

嘗試實施適用於iOS的iCloud日曆同步。 這個想法是從我的應用程序創建一個新日曆,並在實際啓用iCloud同步時將其與iCloud同步。 爲了得到我使用下面的代碼對應的源:從應用程序創建日曆時發生iCloud日曆同步問題

EKSource * localSource =零;

爲(EKSource *在self.eventStore.sources源) { 如果(source.sourceType == EKSourceTypeCalDAV & & [source.title isEqualToString:@ 「的iCloud」]) { localSource =源; 休息; }

}

然後創建在源日曆和保存。

當iCloud的同步功能和日曆同步上的iCloud以及從iPhone->設置 - > iCloud->日曆它的工作就好了。 從理論上關閉上述設置的日曆同步後,它不應該允許在該存儲中再創建日曆。但實際上,即使在這種情況下,它也允許從我的應用程序獲取相應的iCloud存儲並創建/保存新的日曆。 創建新日曆後,它不會在iPhone的日曆列表中顯示它。但是,當您登錄到iCloud Web界面時,您可以看到很多與您剛剛添加的名稱相同的日曆。具有該名稱的日曆數越來越多。像iCloud這樣的日曆同步中存在無限循環問題。到目前爲止,接縫像是一個iOS問題,無法在任何地方找到任何報告。

回答

0

不知道,如果你想通了這一點,如果你沒有,發表您的解決方案:-)

但它似乎是一個錯誤 - 我只是檢查的iCal在我的Mac和它的加載了重複的日曆。

只是想出來的,但一些粗略的代碼,我想我已經工作是建立在EKSource日曆,然後檢查該日曆。

事情是這樣的:

-(BOOL)testCal { 
    BOOL cal = 0; 

    NSUInteger counter = 1; 
    for (EKCalendar *thisCalendar in [[DGEK eventStore]calendars]){ 
    NSLog(@"%@", thisCalendar.title); 
    if ([thisCalendar.title isEqualToString:@"YourCalName"]) { 
     cal = YES; 
     return cal; 
    } 
    counter++; 
    } 
    return cal; 
} 

我認爲作品。現在只做更多的測試。

如果卡爾犯規存在,我發現了默認源像這樣的東西:

source = [[[self eventStore] defaultCalendarForNewEvents] source]; 

希望有所幫助。