2012-06-20 2 views
2

Я пытаюсь удалить сущность в основных данных.Удалить объект в данных ядра

Я использую следующий код:

 //update core data 
     [context deleteObject:myEntity]; 
     [myEntity deleteInContext:context]; 

     [context save:&error]; 

До сих пор я знаю, что на самом деле один из удаления строк должен делать эту работу, однако ни один из них не делает. Ничего не происходит. Нет сообщения об ошибке. Ничего не произошло. Контекст - это мой NSManagedObjectContext.

Может ли кто-нибудь мне помочь? Спасибо !!!!!

+0

Любые подсказки, если вы используете 'NSLog (@" Context:% @, Entity:% @ ", context, myEntity);'? –

+0

thats output: Контекст: (null), Entity: (entity: myEntity; id: 0x8099240 ; данные : { done = nil; item = "Tree"; }) – user1469293

+2

Если контекст равен нулю, это будет самый большой намек, который вам нужен. –

ответ

0

Принимая во внимание ваш результат при вводе контекста: (null), исправление должно состоять в использовании допустимого контекста.

4

[context deleteObject:myEntity] достаточно, чтобы удалить объект. [myEntity deleteInContext:context] является избыточным.

Если вы хотите, чтобы изменения отображались сразу, выполните [context processPendingChanges], иначе объект будет помечен как «для удаления», но изменения будут обработаны в конце цикла runloop.

+0

спасибо! однако ваше предложение не решает мою проблему. мой код: [context deleteObject: myEntity]; NSLog (контекст @ теперь% @ ", контекст); [context processPendingChanges]; [контекст save: & error]; – user1469293

+0

Можете ли вы показать вывод журнала myEntity.managedObjectContext? Поскольку кажется, что ваш контекст равен нулю (чего он действительно не должен). – svena