CoreData удалить сохранить Ошибка - PullRequest
0 голосов
/ 10 октября 2011
    [request2 setEntity:entity];

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


    NSManagedObject * collectionList2 = [[ managedObjectContext executeFetchRequest:request2 error:&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:&error10]) {
        // Update to handle the error appropriately.
        NSLog(@"Unresolved error %@, %@", error10, [error userInfo]);
        exit(-1);  // Fail

    }

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

if (![managedObjectContext save:&error10]) {

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

Ответы [ 2 ]

1 голос
/ 11 октября 2011

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

0 голосов
/ 11 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...