У меня есть 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];
Я пытался сделать отношение обратным, чтобы удалить объекты, которые их не удалили.Я также пробовал разные правила удаления (cascade и nullify), которые снова не работали.Наконец, я попытался удалить каждый объект отдельно и удалить каждый объект из контекста после того, как удалил его из родительского объекта, который, к сожалению, снова не сработал.
Я предполагаю, что проблема должна быть связана с этимбыть выбранным объектом.Если бы кто-то мог помочь, я был бы очень признателен, так как не могу придумать какие-либо другие способы проверить или решить эту проблему.