Подтвердить что ты не робот

Каковы преимущества использования Core Data? (в отличие от plist)

Я относительно новичок в iOS и программировании, и я сделал приложение раньше, но он использовал plist для хранения, который я сохранил в папке с документами. Теперь я думаю о переключении на Core Data, но он выглядит немного сложнее, и я не уверен, что он будет работать для того, что я хочу. Я собираюсь иметь кучу данных, которые мне нужны для построения графика, поэтому я не уверен, что Core Data лучше всего подходит для этого, так как кажется, что я не могу создать тип массива в файле .xcdatamodeld. Какие еще преимущества Core Data? Это быстрее? Легче использовать (как только вы его настроили)?

Обновление: Для всех, кто задавался вопросом, я закончил приложение, и было вполне полезно узнать, как использовать Core Data, и это было намного менее сложно, чем я думал изначально. Делать это с помощью plists было бы ад. То, как они это делают, казалось сначала немного загадочным, но если вы только начнете использовать его, вы получите его. Эти отношения действительно потрясающие.

4b9b3361

Ответ 1

Несколько преимуществ от верхней части головы:

  • Намного лучше управление памятью. С plist вы должны загрузить всю вещь в память; с базовыми данными необходимо загружать только те объекты, которые вы сейчас используете. Кроме того, как только объекты загружаются, они обычно являются объектами "сбоев", которые не загружаются до тех пор, пока вам это не понадобится.
  • В связи с вышеизложенным, когда у вас есть изменения, вы можете сохранить только измененные объекты, а не весь набор данных.
  • Вы можете читать/писать объекты модели напрямую, а не конвертировать их в/из чего-то вроде NSDictionary.
  • Встроенная сортировка объектов при их извлечении из хранилища данных.
  • Богатая система предикатов для поиска вашего набора данных для интересующих объектов.
  • Отношения между объектами обрабатываются напрямую, как свойства связанных объектов. С помощью plist вам нужно будет сделать что-то вроде хранения идентификатора объекта для отношений, а затем просмотреть связанный объект.
  • Дополнительная автоматическая проверка значений свойств.

Модели данных не используют массивы, но отношения "ко многим" моделируются как наборы.

Ответ 2

Это вопрос того, что вы спасете. Для простых строк, массивов, словарей, отлично использовать plist. Для чего-то более сложного (данные, изображения, информация, не относящаяся к объектам) или что-то со многими отношениями (думайте о связи между песней или альбомом, или фото для фотографа), тогда что-то вроде более надежного решения может работать лучше, чем SQLite.

CoreData - это оболочка на основе objective-c вокруг SQLite. Если вы считаете, что можете захотеть чего-то более сложного, CoreData может стать для вас способом.

Если вам нужен быстрый учебник, я бы посмотрел: http://www.raywenderlich.com/934/core-data-tutorial-getting-started

Это заставило меня пойти и позволить мне изучить основы работы CoreData.

Удачи!