С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
smth
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
1

CoreData: как сохранить только одну entity из множества созданных

07.09.2016, 14:29. Просмотров 876. Ответов 3

Добрый день!
Не могу разобраться, как сделать вот что:

При работе приложения на разных этапах создается несколько сущностей (entities), которые, в конце концов, "вкладываются" одна в другую в порядке, обратном созданию. Пример:

Есть сущности A, B, C Все наследуются от NSManagedObject. Все они добавляются в NSManagedObjectContext, созданный в AppDelegate (по эппловским мануалам).

Как оно должно работать:
Сущность A содержит сущность B, B содержит C (в sql это были бы foreign keys, а как корректно в стиле core data сказать - не могу придумать). По ходу выполнения программы сначала создается, но не сохраняется, A, потом также создается B, потом С. После создания C, С сохраняется, добавляется в B, B сохраняется, добавляется в A и после этого A сохраняется.

Но при попытке сохранить C сразу же происходит попытка сохранения A и B, чего мне не нужно (реальные сущности на этом этапе не заполнены необходимыми данными). Я пробовал для каждой сущности создавать отдельный NSManagedObjectContext, но в этом случае я не могу добавить одну сущность в другую - выдается ошибка, что сущности в разных контекстах не могут ссылаться друг на друга (или что-то типа того).

Ни в appcoda, raywenderlich я подобных примеров не нашел. Направьте на путь истинный ) Спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2016, 14:29
Ответы с готовыми решениями:

Как несколько image сохранить как одну картинку?
имеется несколько image наложенных друг на друга, на них картинки. Как это всё...

Сохранить изображения из динамически созданных PictureBox
Всем знатокам доброго времени суток! Динамически создаю picturebox'ы Dim...

Как прописать одну процедуру OnClick для множества кнопок
Вообще-то вопрос по среде Lazarus под Винду, но поскольку в соотв. разделе нет...

Скопировать содержимое папок, созданных за сегодня, в одну папку
Путь к данным папкам известен. В папках находятся только файлы. Сложные циклы...

Обработка нажатия одной кнопки из множества других, созданных в Qt Designer
Добрый день. В Qt Designer создана форма, на ней много кнопок (до 10), они...

3
cin_cout
27 / 27 / 7
Регистрация: 06.10.2012
Сообщений: 130
11.09.2016, 14:48 2
Под CoreData лежит SQLite. Пропишите foreign keys и все отношения в модели данных в CoreData, это же очень удобно в XCode. PersistentStoreCoordinator будет сохранять, если вам надо, те parent/child контексты и в том порядке, в котором зададите.
0
smth
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
12.09.2016, 16:44  [ТС] 3
cin_cout, с этим я, в конце концов, разобрался. А вот с foreign keys, кстати, основная головная боль - имея в двух параллельных child contexts две сущности, я не могу просто взять и добавить одну в другую, чтобы создать связь. Только через objectID. Главное неудобство вызывает то, что, передав objectID в другой MOC, все время думаешь - а что, если этот объект на самом деле не сохранится (ведь сохранения в child context не сохраняются по-настоящему, пока главный MOC не сохранит все)? А его objectID уже передан в другой объект который, в отличие от первого, сохранится... И тут мне недостает знаний и я не могу найти то, что называется "best practice".
0
noname_club
107 / 98 / 12
Регистрация: 01.05.2013
Сообщений: 603
14.09.2016, 15:46 4
матчасть
https://habrahabr.ru/post/218457/
[ENG] описание синхронной работы с несколькими контекстами дочерние паралельные и тп
http://floriankugler.com/2013/04/29/...ance-shootout/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2016, 15:46

Как сохранить одну и ту же сноску на каждой странице документа с одним и тем же текстом
Мне нужно написать несколько десятков справок. В конце каждой есть сноска. При...

Как сделать чтобы Entity всегда двигался ко второму Entity
здравствуйте!!! Скажите пожалуйста, знающие люди, как сделать чтобы Entity...

Есть ли возможность при 9 созданных окнах создать одну и туже кнопку с функцией
Подскажите есть такая ли возможность при 9 созданных окнах создать одну и туже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru