Я использую магическую запись в своем приложении.Магическая запись каскада delete (truncateAll) не удаляется
У меня есть отношения ...
Competition <-->> League
т.е. Competition
может иметь много Leagues
. A League
может иметь только один Competition
.
Правило удаления от Competition to League
установлено на Cascade
. Правило обратного удаления установлено на Nullify
.
Что бы я ожидал, это если я удалю Competition
, тогда все Leagues
, которые принадлежат ему, также удаляются. (Я успешно использовал это в предыдущих приложениях).
Я проверяю, делая ...
- Скачать и вставить все соревнования и лиги.
Зарегистрировать все лиги с названиями соревнований.
NSArray *leagues = [League findAll]; for (League *league in *leagues) { NSLog(@"%@ - %@", league.name, league.competition.name); } e.g. Man UTD - Premier League
запустить следующий код ...
[Competition truncateAll];
Записывать все Лиги с именами конкуренции.
e.g. Man UTD - (null)
Я ожидал этого, чтобы удалить Leagues
, а также Competitions
?
Является ли мое предположение правильным в том, что он должен делать? Почему он этого не делает?
Как вы «Зарегистрируйте все лиги с названиями соревнований»? Получаете ли вы их снова или используете существующие указатели для объектов? - Обратите внимание, что правила удаления применяются только при сохранении контекста или вызове 'processPendingChanges'. –
Отредактировано для отображения кода журнала. Я думал, что это урезает? Я глуп. Я завернул обрезку в блок сохранения, и это сработало. Спасибо :) – Fogmeister