ios - Check EKCalendar -


good day! use function "save event calendar" via uiactivityitems. in function create new calendar , add event calendar:

ekeventstore* eventstore = [[ekeventstore alloc] init];  // calendar source eksource* localsource; (eksource* source in eventstore.sources) {     if (source.sourcetype == eksourcetypelocal)     {         localsource = source;         break;     } }  if (!localsource)     return;  ekcalendar *newcalendar = [ekcalendar calendarforentitytype:ekentitytypeevent eventstore:eventstore]; calendar.source = localsource; calendar.title = @"new calendar";  nserror *errorcalendar; [eventstore savecalendar:newcalendar commit:yes error:&errorcalendar];   ekevent *event  = [ekevent eventwitheventstore:eventstore]; event.title     = @"title";  event.startdate = startdate; event.enddate   = enddate;  [event setcalendar:newcalendar]; // , etc. 

and working. every next time create new calendar name "new calendar" again. how can check if calendar name exist? , how can change type of calendar? on birthday or etc.

first, need use single instance of eventstore life of app, according apple.

therefore suggest making eventstore property of view controller:

@property (nonatomic, retain) ekeventstore *eventstore;

and in viewdidload:

self.eventstore = [[ekeventstore alloc] init];

now can check same eventstore instance reading , writing before anything:

-(bool)checkforcalendar {     //get array of user's calendar using instance of eventstore     nsarray *calendararray = [self.eventstore calendarsforentitytype:ekentitytypeevent];      // name of calendar check for. can save calendaridentifier , check if want     nsstring *calnametocheckfor = @"new calendar";      ekcalendar *cal;      (int x = 0; x < [calendararray count]; x++) {          cal = [calendararray objectatindex:x];         nsstring *caltitle = [cal title];          // if calendar found, return yes         if (([caltitle isequaltostring:calnametocheckfor]) {              return yes;         }     }      // calendar name not found, return no;     return no; }  -(void)savenewevent {      // if calendar not exist, create before save event.     if ([self checkforcalendar] == no) {           // calendar source         eksource* localsource;         (eksource* source in eventstore.sources) {             if (source.sourcetype == eksourcetypelocal)             {                 localsource = source;                 break;             }         }          if (!localsource)             return;          ekcalendar *newcalendar = [ekcalendar calendarforentitytype:ekentitytypeevent eventstore:eventstore];         calendar.source = localsource;         calendar.title = @"new calendar";          nserror *errorcalendar;         [eventstore savecalendar:newcalendar commit:yes error:&errorcalendar];      }          ekevent *event  = [ekevent eventwitheventstore:self.eventstore];         event.title     = @"title";         event.startdate = startdate;         event.enddate   = enddate;         [event setcalendar:newcalendar];         // , etc. } 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

java - Using an Integer ArrayList in Android -