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. Любая помощь будет принята с благодарностью. Благодарю.

0 ответов

Другие вопросы по тегам