#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:
вызовом.