2015-10-28 4 views
0

У меня есть эти данные:Добавление EKEvents в bucle от даты начала до даты окончания

NSString* startDate = @"11/27/2015"; 
NSString* endDate = @"12/02/2015"; 
NSString* startHour = @"10:00"; 
NSString* endHour = @"15:00"; 
NSString* title = @"Event Title"; 

И я хочу, чтобы добавить событие в календарь, от 11/27/2015 до 12/02/2015 от 10 : 00 до 15:00.

Могу ли я добавить несколько EKEvent, один в день? Или есть способ создать один EKEvent, который описывает все?

ответ

0
try below code... 
eventStore = [[EKEventStore alloc] init]; 
    // Create a new event object. 
    EKEvent *event = [EKEvent eventWithEventStore: eventStore]; 

    // Set the event title. 
    event.title = eventMessage; 

    // Set its calendar. 


    NSString *identifier=[[NSUserDefaults standardUserDefaults]objectForKey:@"calenderId"]; 
    // NSLog(@"cal identifier: %@",identifier); 
    event.calendar = [eventStore calendarWithIdentifier:identifier]; 

    //set Alarm 
    NSTimeInterval secondsInOneHours = 1 * 60 * 60; 

    NSDate *dateOneHoursAhead = [eventDate dateByAddingTimeInterval:secondsInOneHours]; 

    // Set the start and end dates to the event. 
    event.startDate = eventDate; 
    event.endDate = dateOneHoursAhead; // 

NSError *error; 
    if ([eventStore saveEvent:event span:EKSpanFutureEvents commit:YES error:&error]) { 

    /NSLog(@"Event Added"); 
    } 
    else{ 
     An error occurred, so log the error description. 
     NSLog(@"%@", [error localizedDescription]); 
    } 
+0

Таким образом, я могу добавить событие. Но Событие, которое я хочу, происходит повторяющимся образом более чем за один день. Я не знаю, нужно ли мне добавлять только одно настроенное событие, или мне нужно добавить одно событие для каждого дня. Я думаю, что лучший способ - создать одно событие, но я не нашел информации об этом. – Jimmy

+0

, используя выше, вы можете добавить много событий за один день, их нет предела. если вы добавляете событие в одно и то же время и дату, все равно их не проблема. В противном случае вы можете получить все события для своего календаря и проверить текущее событие, если конфликт возникает, просто уведомите пользователя. я сделал это мое приложение –

0

Мне нужно использовать класс EKRecurrenceRule.

EKEvent* event = [EKEvent eventWithEventStore:eventStore]; 

EKRecurrenceRule* recurrenceRule = [[EKRecurrenceRule alloc] initRecurrenceWithFrequency:EKRecurrenceFrequencyDaily interval:1 end:[EKRecurrenceEnd recurrenceEndWithEndDate:eventEndDate]]; 
     event.recurrenceRules = [NSArray arrayWithObjects:recurrenceRule,nil]; 
Смежные вопросы