iOS7 - перезагрузка устройства при копировании 500 записей в хранилище событий с Commit=YES
Приведенный ниже код будет нормально работать с 500 записями, мы пакетируем операцию и фиксируем хранилище событий после добавления 500 записей.
EKEventStore *eventStore = [[EKEventStore alloc] init];
for(int i=0 ; i< 500 ; i++){
EKCalendar *calendarDef = [eventStore defaultCalendarForNewEvents];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
[event setCalendar:calendarDef];
//set values to this event. like title, notes, startDate, endDate, location
event.title = [NSString stringWithFormat:@"testno-%i", i];
event.startDate = [NSDate date];
event.endDate = [[NSDate date] dateByAddingTimeInterval:180];
NSError *err1 = nil;
BOOL isStoredd = [eventStore saveEvent:event span:EKSpanThisEvent commit:NO error:&err1];
NSLog(@"item %i", i);
if(isStoredd){
NSLog(@"stored");
}else{
NSLog(@"event saved error = %@",err1);
}
}
[eventStore commit:NULL];
Предположим, нам нужен четный идентификатор каждой записи события копирования для будущих модификаций, а затем мы должны зафиксировать каждую запись, чтобы получить идентификатор. Но при этом мы получаем предупреждение памяти и устройство перезагружается. Ниже приведен пример кода:
EKEventStore *eventStore = [[EKEventStore alloc] init];
for(int i=0 ; i< 500 ; i++){
NSString *eventIde = nil;
EKCalendar *calendarDef = [eventStore defaultCalendarForNewEvents];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
[event setCalendar:calendarDef];
//set values to this event. like title, notes, startDate, endDate, location
event.title = [NSString stringWithFormat:@"testno-%i", i];
event.startDate = [NSDate date];
event.endDate = [[NSDate date] dateByAddingTimeInterval:180];
NSError *err1 = nil;
BOOL isStoredd = [eventStore saveEvent:event span:EKSpanThisEvent commit:YES error:&err1];
NSLog(@"item %i", i);
if(isStoredd){
eventIde = event.eventIdentifier;
//storing the eventIde to application's database to modify/delete the event later.
NSLog(@"stored identifier %@", eventIde);
}else{
NSLog(@"event saved error = %@",err1);
}
}
Нам нужен Eventidentifier для будущих модификаций (обновление / удаление), поэтому ищем способ вставить более 500 записей в хранилище событий, получив его eventidentifier. Любая помощь будет принята с благодарностью. Благодарю.