2016-07-15 18 views
0

Ich habe eine Anwendung, in der ich die Ereignisse für die bestimmten Daten hinzufügen muss, die vom Server kommen. Ich mache es wie unten:Wie füge ich Events an bestimmten Tagen in iOS hinzu?

[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
NSDate *strtdate=[dateFormatter dateFromString:[replacedDict valueForKey:@"Departure"]]; 
NSPredicate *predicateForEventOnDate = [store predicateForEventsWithStartDate:strtdate endDate:[strtdate dateByAddingTimeInterval:60*60*24] calendars:calendarArray]; 

[store enumerateEventsMatchingPredicate:predicateForEventOnDate usingBlock:^(EKEvent *event1, BOOL *stop) { 
NSLog(@"title: %@",event1.title); 
NSLog(@"hasNotes: %s",event1.hasNotes ? "YES":"NO"); 
NSLog(@"notes: %@",event1.notes); 
NSLog(@"-----"); 
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:event1.title, @"title",event1.hasNotes ? event1.notes : @"",@"notes", nil]; 

[eventOnDate addObject:dict]; 
}]; 

NSLog(@"%@",eventOnDate); 
if (eventOnDate.count > 0) 
{ 
    for (int i=0;i<[eventOnDate count];i++) { 
     if (![[[eventOnDate objectAtIndex:i] valueForKey:@"notes"] isEqualToString:note]) 
     { 

      EKEvent *event = [EKEvent eventWithEventStore:store]; 
      event.title = subject; //give event title you want 
      event.notes = note ; 
      event.startDate = strtdate; 
      event.endDate = [event.startDate dateByAddingTimeInterval:60*60*24]; 
      event.calendar = [store defaultCalendarForNewEvents]; 
      NSError *err = nil; 
      [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err]; 
      if (!err) { 
      } 
      else 
      { 
       // NSLog(@" Event not created"); 

      } 
     } 
     else if ([[[eventOnDate objectAtIndex:i]valueForKey:@"notes"] isEqualToString:note]) 
     { 

     } 
    } 
} 

Aber hier das Ereignis wird nur auf den heutigen Zeitpunkt nur noch hinzugefügt i Warnmeldungen bin immer wie Cal Database Change Notification auch Benachrichtigung 180 mal so, geändert hat. kann jemand mir sagen, wo ich falsch gehe

Ich muss die Ereignisse zu bestimmten Tag hinzufügen? Kann mir jemand dabei helfen?

Antwort

0

Überprüfen Sie, ob das Datumsformat korrekt ist.

event.startDate sollte NSDate

EKEventStore *store = [[EKEventStore alloc] init]; 
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
     if (!granted) return; 
     EKEvent *event = [EKEvent eventWithEventStore:store]; 
     event.title = @"Event Title"; 
     event.startDate = [NSDate date]; // today 
     event.endDate = [event.startDate dateByAddingTimeInterval:60*60]; // Duration 1 hr 
     [event setCalendar:[store defaultCalendarForNewEvents]]; 
     NSError *err = nil; 
     [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err]; 
     NSString *savedEventId = event.eventIdentifier; // Store this so you can access this event later 
    }]; 

dieses Blogs lesen ...

http://samwize.com/2014/07/09/how-to-add-edit-and-remove-ios-calendar-events/

https://developer.apple.com/library/ios/documentation/EventKit/Reference/EKEventStoreClassRef/