我有一个NSManagedObject与另一个NSManagedObject的多对多关系。CoreDataGeneratedAccessors删除对象似乎并没有删除
在创建NSManagedObject期间,我可以使用生成的访问器的removeNotesObject,并且删除工作正常。我可以创建一个对象添加到父对象,保存对象,删除对象,然后再次保存。当我获取这个父对象时,我创建和删除的对象仍然被删除。
但是,在添加对象然后保存它(但不要删除并保存之后)然后获取它之后,我似乎无法删除先前创建的对象。我正在使用生成的访问器来尝试删除该对象,该对象似乎可以正常工作,但是当我再次获取该对象时,该对象尚未被删除。
(注:添加的对象做的工作,所以它不是与节约问题)
要删除我检索集对象,并选择我要删除的对象的对象。然后我删除的对象
NSSet *notes = summary.notes;
NSSet *oldNotes = [notes objectsPassingTest:^(id obj,BOOL *stop){
Note *oldNote = (Note *)obj;
BOOL sameRow = (oldNote.row == newNote.row);
BOOL sameColumn = (oldNote.column == newNote.column);
BOOL success = (sameRow && sameColumn);
return success;}];
[summary removeNotes:oldNotes];
我已经尝试使关系相反删除没有删除它们的对象。我也尝试了不同的删除规则(级联和无效),这再次无效。最后,我试图分开移除每个对象,并在从父对象中删除每个对象后再从该上下文中删除,而这又不幸地不起作用。
我认为这个问题必须与它是一个获取对象有关。如果有人能帮助我,我会非常感激,因为我想不出任何其他方式来测试或解决这个问题。
感谢您的建议。我在删除对象后尝试使用'deleteObject',但在暂时删除对象后,我不会在删除对象后将其删除。至于删除规则,我目前已将删除规则设置为级联,但不起作用,并且无效也不起作用。 – Theo 2011-12-29 22:11:41
你如何重新提取它?您可能需要保存NSManagedObjectContext。在保存managedObjectContext之前,更改不会持久保存到磁盘。 – lorean 2011-12-29 22:17:43
是的,我想确保它是绝对保存的,因为我已经同时添加了对象和删除的对象,然后保存。当我获取对象时,新对象仍然被添加,但其他对象未被删除。 – Theo 2011-12-29 23:22:48