iphone coredata удаляет записи между двумя объектами, связанными между собой - PullRequest
0 голосов
/ 11 мая 2010

Я реализую основные данные в своем приложении для iphone.У него есть две сущности.Entity1: LatestData Entity2: LatestDetailedData

LatestData имеет URL-адрес, ключ публикации, заголовок LatestDetailedData имеет URL-адрес, NewsDescription, ОпубликованоDate, автор

Оба объекта имеют одинаковый URL-адрес для записи.Обе сущности связаны с обратной связью корабля.И корабль отношений "delete-> Cascaded"

Что я хочу: если я удаляю запись в LatestData, я хочу, чтобы запись с тем же URL-адресом в LatestDetailedData также была удалена.

Как

Ответы [ 2 ]

1 голос
/ 11 мая 2010

Если я правильно вас понимаю, вы используете отношения, и они имеют обратную сторону. Если это так, то при удалении одного из них Core Data автоматически удалит другое, и вам не нужно ничего делать.

Что вы видите, что говорит о том, что этого не происходит?

Обновление

Поскольку вы используете несколько потоков, используете ли вы один NSManagedObjectContext на поток? Если да, обновляете ли вы все потоки при сохранении? Я подозреваю, что один из этих двух не происходит, и поэтому вызывает вашу проблему.

0 голосов
/ 11 мая 2010

когда вы создаете сущности, вам тоже нужно создавать отношения

LatestDetailedData * entity2 = [[NSEntityDescription insertNewObjectForEntityForName:@"LatestDetailedData" inManagedObjectContext:context]; entity1.lastestdetail=entity2;

если вы просто полагаетесь на поле URL, это плохая практика. Установите отношения в coredata, и каскадные удаления позаботятся о себе.

...