Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
smth
177 / 46 / 6
Регистрация: 23.06.2011
Сообщений: 248
#1

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

07.09.2016, 14:29. Просмотров 764. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CoreData: как сохранить только одну entity из множества созданных (Программирование iOS):

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

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

Скопировать содержимое папок, созданных за сегодня, в одну папку - CMD/BAT
Путь к данным папкам известен. В папках находятся только файлы. Сложные циклы пока не понимаю. цикл /ф "скип7 токены=1" %%а (Дир...

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

Как сохранить одну и ту же сноску на каждой странице документа с одним и тем же текстом - MS Word
Мне нужно написать несколько десятков справок. В конце каждой есть сноска. При копировании справки на следующую страницу звездочки для...

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

3
cin_cout
26 / 26 / 7
Регистрация: 06.10.2012
Сообщений: 119
11.09.2016, 14:48 #2
Под CoreData лежит SQLite. Пропишите foreign keys и все отношения в модели данных в CoreData, это же очень удобно в XCode. PersistentStoreCoordinator будет сохранять, если вам надо, те parent/child контексты и в том порядке, в котором зададите.
0
smth
177 / 46 / 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
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
14.09.2016, 15:46 #4
матчасть
https://habrahabr.ru/post/218457/
[ENG] описание синхронной работы с несколькими контекстами дочерние паралельные и тп
http://floriankugler.com/2013/04/29/...ance-shootout/
0
14.09.2016, 15:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2016, 15:46
Привет! Вот еще темы с ответами:

.NET 4.x Есть ли возможность при 9 созданных окнах создать одну и туже кнопку с функцией - C# WPF
Подскажите есть такая ли возможность при 9 созданных окнах создать одну и туже кнопку с функцией к примеру private ICommand...

Как достать только одну запись? - PHP БД
нужен запрос чтобы обновить строку в таблице `forums` где `id` = и выбрать из другой таблице ( но тока 1-у первую запись ) запрос вида...

Сохранить два контекста Entity Framework в одной транзакции - C#
Каждый контекст связан со своей базой данных, но на одном сервере. Пробую сделать с помощью TransactionScope, но выдаёт ошибку:...

Как вывести на главной только одну запись - WordPress
Здравствуйте, подскажите как вывести на главной только одну запись? Я в принципе представляю, что нжно выводить по ID а остальные...


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

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

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