【发布时间】:2011-12-29 11:42:56
【问题描述】:
我有一个与另一个 NSManagedObject 有一对多关系的 NSManagedObject。
在创建 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];
我已经尝试使关系反转以删除没有删除它们的对象。我还尝试了不同的删除规则(级联和无效),但仍然不起作用。最后,我尝试单独删除每个对象,并在从父对象中删除每个对象后从上下文中删除它,但不幸的是,这又不起作用。
我认为问题一定与它是一个获取的对象有关。如果有人可以提供帮助,我将不胜感激,因为我想不出任何其他方法来测试或解决这个问题。
【问题讨论】:
标签: ios objective-c iphone cocoa-touch core-data