我有一個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