Ошибка удаления сохранения CoreData

#ios #iphone #cocoa-touch #core-data #nsmanagedobjectcontext

#iOS #iPhone #cocoa-touch #core-данные #nsmanagedobjectcontext

Вопрос:

     [request2 setEntity:entity];

    NSPredicate * predicate2 = [ NSPredicate predicateWithFormat:@"logoFrameNum == %@",[NSNumber numberWithInt:7]];
    [request2 setPredicate:predicate2];    


    NSManagedObject * collectionList2 = [[ managedObjectContext executeFetchRequest:request2 error:amp;error2] objectAtIndex:0];


    NSLog(@"context :%@", deleteContext1);
    [managedObjectContext deleteObject:collectionList2];

    BOOL yesorno = [collectionList2 isDeleted];

    NSLog(@"yesorno : %i", yesorno);

    NSError * error10;

    NSLog(@"[managedObjectContext ] : %@", deleteContext1);

    [collectionList2 release];

    if (![managedObjectContext save:amp;error10]) {
        // Update to handle the error appropriately.
        NSLog(@"Unresolved error %@, %@", error10, [error userInfo]);
        exit(-1);  // Fail

    }
  

Над ним гораздо больше источника. Изменение переменных или получение данных из coredata хорошо выполняется с тем же NSManagedObjectContex, который у меня есть. Однако удаление в этом контексте сводит меня с ума. Он выходит из строя без какого-либо сообщения об ошибке только в

 if (![managedObjectContext save:amp;error10]) {
  

Я пытался получить новый контекст и так далее и тому подобное …….. много ..

Комментарии:

1. Откуда deleteContext1 берется?

Ответ №1:

Вы выполняете a release для объекта ( collectionList2 ), который вам не принадлежит. Это может привести к сбою позже (например, во время сохранения). Попробуйте удалить release .

Ответ №2:

Возможно, вы пытаетесь удалить nil объект.
Кроме того, вы должны сделать все это в одном NSManagedObjectContext .
Попробуйте поместить свой save:error: метод прямо под deleteObject: вызовом.