2016-07-15 12 views
0

私は、サーバーからの特定の日付のイベントを追加する必要があるアプリケーションを持っています。 、iOSの特定の日にイベントを追加するには?

[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]) 
     { 

     } 
    } 
} 

をしかし、ここでイベントが唯一のも、私は通知にそのような180回変更されたカルデータベース変更通知のような警告メッセージを取得していますちょうど今日の日付に追加されます:私は以下のようにそれをやっています。誰が私が間違っているか教えてください

イベントを特定の日に追加する必要がありますか?誰も私にこれを助けることができますか?

答えて

0

日付の形式が正しいことを確認してください。

event.startDateは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 
    }]; 

このブログを読む...

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/

する必要があります
関連する問題