2015-09-12 2 views
0

Работа с базовой моделью данных, и я все еще новичок в этом. Прямо сейчас у меня есть контроллер просмотра, который сохраняет связь между двумя объектами, и он остается прекрасным до тех пор, пока я не должен добавить другое отношение в основной объект данных ядра. Когда я это делаю, связь между начальными 2 отношениями прерывается, и табличное представление больше не может представить связь и, таким образом, падает. Я знаю, чтобы установить отношения, которые мне нужно вставить в уже существующий контекст, но как я могу это сделать, не очищая ранее установленное отношение?Настройка отношений в основных данных быстро после сохранения контекста

Предположим, что у меня есть сущность с именем primary и one named secondary. Связь между этими двумя наборами прекрасна. Когда я пытаюсь установить отношение для третьего объекта, связь между вторичной и первичной очищается. Реальная проблема заключается в том, что я на самом деле передавая объект Я хочу сохранить отношения в так когда я делаю код, подобный этому:

passedObject?.relationhips = entity.relation 

это на самом деле не устанавливая отношения. Я что-то упускаю? Должен ли я вставлять что-то в контекст первичной сущности вне установки отношений?

ответ

0

Очень распространенная авария с базовыми данными - это когда вы обновили свою модель, но приложение на симуляторе имеет данные, которые используют старую модель и сбой. Поэтому, после обновления вашего модального кода, хорошая привычка удалять ваше приложение из симулятора перед повторным запуском (хотя я думаю, что Apple внесла изменения в iOS9, где ваше приложение будет автоматически переносить данные, но я этого не проверял).

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

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

+0

У меня это происходит в основном для многих, а второй - для третьего. Все, что часть моего приложения настроена правильно, но это строго проблема установки отношений в MOC, которые я предоставляю на контроллере просмотра, записывая дополнительную информацию. Когда я пытаюсь установить связь между объектом, созданным на третьем и основным, он не хранит. receivedObject - это переменная, содержащая тип первичного объекта. Я знаю, что мне нужно установить отношения в обоих объектах, но когда я пытаюсь вызвать оба способа, они разбились. NSFaultingMutableSet unreconized selector – cruelty

+0

Я попытался удалить приложение из симулятора, но это, похоже, не проблема. Метод, который я также пробовал, был передан Object? Relationship = entity.description, а затем непосредственно под ним сущностьInsert.relation = receivedObject? .relatioinships, но это просто вызывает другой краш. – cruelty

+0

«unreconized selector» заставляет меня думать, что, возможно, у вас есть опечатка между вашим модальным и подклассом NSManagedObject. – MathewS

0

Всегда проверяйте базовые подклассы данных после того, как они автоматически создаются с помощью Core Data. Иногда установка неверна, как в случае с моей проблемой.

Смежные вопросы