以下代碼工作並從iPhone日曆數據庫中刪除所有日曆事件。 但事件正在刪除速度很慢:iPhone 3GS每秒發生2次事件。 所以,如果你有3000個事件 - 那麼它是25分鐘,以消除它們... 你會如何優化此代碼?也許我做錯了什麼?謝謝。如何更快地刪除日曆事件?
- (void)deleteAllCalendarEventsFromIPhone:(NSError **)error {
EKEventStore *store = [[EKEventStore alloc] init];
NSUInteger beginYear = 1900;
NSUInteger endYear = 2100;
while (beginYear < endYear) {
NSPredicate *predicate =
[store predicateForEventsWithStartDate:[self createDateWithYear:beginYear month:1 day:1]
endDate:[self createDateWithYear:beginYear + 4 month:1 day:1]
calendars:nil];
NSArray *eventList = [store eventsMatchingPredicate:predicate];
for (EKEvent *event in eventList) {
success = [store removeEvent:event span:EKSpanThisEvent error:nil];
}
beginYear += 4;
}
[store release];
}
我不同意你的看法。這是EKEventStore的用法。我收到GroupWise日曆(5000個事件)並將其保存在iPhone日曆應用程序中(在事件名稱的開頭使用前綴GW)。然後,如果用戶在iCal中不需要這些事件 - 他可以使用我的功能將其刪除。 – 2010-10-28 08:24:15