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

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

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

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

При работе приложения на разных этапах создается несколько сущностей (entities), которые, в конце концов, "вкладываются" одна в другую в порядке, обратном созданию. Пример:
http://www.cyberforum.ru/cpp-builder/thread867154.html

Есть сущности 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос CoreData: как сохранить только одну entity из множества созданных (Программирование iOS):

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

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

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

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

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

3
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 120
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
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
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 созданных окнах создать одну и туже...

Как пользователю ткрыть только одну БД...
Нужно пользователю дать (при открытии клиента) возможность работать только в...

Как достать только одну запись?
нужен запрос чтобы обновить строку в таблице `forums` где `id` = и выбрать из...


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

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

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