Вставка объектов — Основные данные

#iphone #core-data

#iPhone #основные данные

Вопрос:

Я только начал использовать Core Data, и теперь у меня возникают проблемы с пониманием того, как вставлять объекты. У меня есть следующая структура:

  • Расположение
  • Окружающая среда
  • Журнал

Журнал, который является основной «строкой», имеет отношение «многие ко многим» как к среде, так и к местоположению. И эти объекты также имеют отношение «многие ко многим» к объекту журнала.

Местоположение и среда имеют только один простой атрибут. Объект журнала хранит время, дату и некоторые другие данные.

Однако я не понимаю, как работает процесс вставки? Я хочу создать объект журнала, который устанавливает уже упомянутые данные, а также местоположения и среды. Как мне это сделать?

И мне также интересно, как Core Data сохраняет местоположение и среду и связывает их с журналом.

Потому что как объект location, так и объект environment будут содержать не более четырех объектов. Итак, я полагаю, что причина, по которой я использую NSSet, заключается в том, что данные не будут дублироваться? Поскольку в SQL эти две таблицы были бы заполнены четырьмя возможными значениями (Location): «temp1», «temp2», «temp3», «temp4», и у них был бы внешний ключ в таблице сопоставления, чтобы значения не дублировались.

Если это имеет какой-то смысл, я был бы признателен за помощь от вас, ребята. Спасибо, что уделили мне время.

Ответ №1:

Как уже много раз писалось ранее, Core Data — это не то же самое, что SQL. Core Data — это гораздо более богатый API объектной модели, который в некоторых случаях позволяет использовать SQLite в качестве резервного хранилища.

Тем не менее, вам следует взглянуть на некоторые примеры кода Apple для получения примеров программирования Core Data. Вы увидите мантру, необходимую для настройки различных экземпляров Core Data (например, NSPersistentStoreCoordinator, NSManagedObjectContext). И вы также увидите, как создаются новые экземпляры NSManagedObject.

Вы также можете ознакомиться с руководством по программированию Core Data, если вы еще этого не сделали.