У меня есть следующие объекты в основных данных, как показано на рисунке ниже.
Правило удаления для всех отношений - каскадное.
Вопросы:
Всякий раз, когда я удаляю любой объект-сущность на уровне 2 и выполняю [context save:&error];
, все остальные объекты в таблице Entity1 получают ошибку данных, и приложение вылетает из-за невозможности больше читать объект Entity1, что приводит к ошибке EXC_BAD_ACCESS
.
Я использую этот код
for(Entity1 *entity in listOfEntitys)
{
if(entity.Relation1)
[context deleteObject:entity.Relation1];
if(entity.Relation2)
[context deleteObject:entity.Relation2];
if(entity.Relation3)
[context deleteObject:entity.Relation3];
}
[context save:&error];
Не то чтобы я никогда не удалял объекты из основных данных, но это единственное место, где возникает проблема. Может ли кто-нибудь помочь.
Спасибо.
PS. Я видел другие вопросы по SO, но ни один не имеет такой ситуации, как я.
Edit:
Моя проблема в том, что когда я пытаюсь удалить какой-либо один объект из уровня 2, тогда все объекты в entity1 получают ошибку данных. что-то вроде этого.
Printing description of listOfEntitys:
(
"<Entity1: 0x4dc3d80> (entity: Entity1; id: 0x4dc2d60 <x-coredata://DF11191D-0BE9-4A63-955D-0A43153290A4/Entity1/p5> ; data: <fault>)",
"<Entity1: 0x5b06ea0> (entity: Entity1; id: 0x5b077d0 <x-coredata://DF11191D-0BE9-4A63-955D-0A43153290A4/Entity1/p6> ; data: <fault>)",
"<Entity1: 0x4dc2cf0> (entity: Entity1; id: 0x4dc2df0 <x-coredata://DF11191D-0BE9-4A63-955D-0A43153290A4/Entity1/p7> ; data: <fault>)",
"<Entity1: 0x4dc2b80> (entity: Entity1; id: 0x4dc3640 <x-coredata://DF11191D-0BE9-4A63-955D-0A43153290A4/Entity1/p8> ; data: <fault>)"
)