2014-01-30 49 views
0

我有需要將事件寫入本機日曆的應用程序。如果添加EKEvent不包含EKAlarm,則寫入工作正常。如果我包括這行代碼:將事件添加到本機iOS日曆,包括警報時無法運行

EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-30]; 
event.alarms = [NSArray arrayWithObject:alarm]; 

日曆項目是不是添加。看起來好像執行這行代碼根本沒有執行:

[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err]; 

想法可能是什麼問題?

+0

你能記錄你的'err'變量嗎? – Laszlo

+0

這就是它實際上,行[store saveEvent:事件跨度:EKSpanThisEvent提交:是錯誤:&err];實際上從未執行,所以我不能記錄錯誤。 –

回答

5

我運行了你的代碼(並且添加了完成它所必需的)並且沒有任何問題。許多難以解釋的案例的解決方案是清理(構建文件夾)並從設備重置模擬器/刪除應用程序。如果您提供更多的代碼,將更容易找到解決方案。順便說一句,這裏是我使用的代碼工作:

- (void)addToCalendar { 
    EKEventStore *eventStore = [[EKEventStore alloc] init]; 

    [eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
     EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
     EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:-30]; 
     event.alarms = [NSArray arrayWithObject:alarm]; 
     event.title = @"Title"; 

     NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
     [df setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
     event.startDate = [df dateFromString:@"2014-02-05 10:00:00"]; 
     event.endDate = [event.startDate dateByAddingTimeInterval:90*60]; 
     event.notes = @"Add some notes"; 

     [event setCalendar:[eventStore defaultCalendarForNewEvents]]; 

     NSError *err; 
     [eventStore saveEvent:event span:EKSpanThisEvent error:&err]; 
    }]; 
} 
+0

您是否嘗試過使用不同開始/結束日期的多個事件的代碼?因爲,當只有一個事件時,我沒有問題,但是一次有多個事件。 –

+0

我在三個不同的時間/日期添加了四個事件(一個重複以檢查以及),都成功了。 「一次多個事件」是什麼意思?我通過四次執行上面的代碼(修改日期)來添加它們。同樣,發佈EKEvent的完整代碼可能會在其他地方發現問題。 – Jorn

相關問題