CoreData SQLite - данные выглядят удаленными, но на самом деле это не так - PullRequest
1 голос
/ 20 августа 2011

Приложение позволяет управлять списком поставщиков и списком продуктов, доступных у этих поставщиков.Модель данных содержит 2 объекта: Поставщик и Продукт.

Поставщик имеет отношение «один ко многим» к продукту, для правила удаления установлено значение «Каскад» (поскольку я не хочу вести учет продуктов поставщика, если онразоряется).Продукт имеет настройки отношения по умолчанию.

В IB у меня есть 2 контроллера массива.Один указывает на сущность «Поставщик» с параметрами: MOC привязан к AppDelegate и MKP = managedObjectContext.Другие указывают на сущность Product с параметрами: MOC, привязанный к AppDelegate и MKP = managedObjectContext, и с содержимым контроллера: набор содержимого, привязанный к контроллеру массива Suppliers, CK = selection и MKP = name_of_relation.

На интерфейсеУ меня есть 2 NSTableViews для поставщиков и продуктов, и кнопки для добавления / удаления из таблиц.Когда я выбираю поставщика, в таблице продуктов отображаются только его конкретные продукты.Когда я удаляю товар, товар исчезает из таблицы.Он работает как задумано.

Я думал, что он работал нормально, до того дня, когда мне стало интересно посмотреть, как CoreData фактически управляет полями данных и таблицами внутри базы данных SQLite.Поэтому я открыл его с помощью надстройки SQLiteManager в Firefox и ... ужас!Я вижу, что Продукты не удалены.Данные все еще там!Была удалена только ссылка на Поставщика, и поэтому она больше не отображается в таблице, что наводит меня на мысль, что она была удалена правильно.

Что я сделал не так?Это что-то с привязками Content Set?Спасибо за совет.

1 Ответ

1 голос
/ 20 августа 2011

Я только что проверил это, и в результате сущности отношений были полностью удалены из базы данных sqlite. Я думаю, что вам нужно снова проверить свои настройки каскадирования точно в IB. Вы удостоверились, что у вас есть save: заявление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...