2017-02-04 20 views
0

Скажем, у меня есть этот класс иерархии:Как правильно комбинировать данные .plist и CoreData?

protocol Location {} 
class Planet: Location { 
} 

// That's a spot on some planet 
class Site: Location { 
    var planet: Planet 
} 

Вот что я хочу реализовать. Я хочу добавить планеты через файл .plist (это то, что я думаю, лучше всего подходит).

Это предустановленные планеты, которые существуют во Вселенной. Однако на каждой планете есть местоположения, которые пользователь создает. Таким образом, мне нужно сохранить их с помощью CoreData.

Я не уверен, как это сделать. Как я могу использовать эту иерархию классов, которую я «жестко закодировал» (используя .plist) вместе с CoreData моделями/объектами?

Например: Как создать сайт entity в CoreData? Я не могу просто добавить атрибут planet типа Planet, это невозможно в CoreData, насколько я знаю.

Каков общий подход для этого? Надеюсь, вы понимаете мою проблему, ее сложно описать, поскольку это для меня ново.

ответ

0

В Core Data создать

  • Entity Planet
  • Entity Site
  • отношения один-ко-многим из Planet в Site
+0

Но планеты не сохраняются с использованием CoreData. Все «объекты» хранятся в файле '.plist'. Если бы я создал объект «Планета», мне нужно было бы сохранить все планеты в базе данных устройства, верно? Или я что-то путаю? – Quantm

+0

Вы спросили: * Как создать объект сайта в CoreData *? . Я рекомендую использовать Core Data в качестве основной базы данных и файл plist для исходного набора данных. В принципе, вы не должны одновременно использовать список свойств и базовые данные. – vadian

+0

Да, это именно то, что я спросил. Но я также сказал, что планеты не используют CoreData. Однако использование CoreData в качестве основной базы данных является хорошим решением. – Quantm

0

Выполните следующие действия:

  1. Получить адрес Plist из вашего комплекта
  2. Прочитайте содержимое Plist в массив
  3. перебирать массив, вставляя новые объекты ядра данных по мере необходимости, заполнение свойств, как это определено в PLIST
  4. Сохранить контекст

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