Какие факторы следует выбирать между использованием базовых данных и развертыванием пользовательской модели? - PullRequest
3 голосов
/ 24 ноября 2008

Могут существовать приложения, которые не подходят для Core Data - например, программы для работы с изображениями, такие как Photoshop или Gimp. Но для приложений, которые подходят для базовых данных, например, для адресной книги или iCal, каковы критерии выбора базовых данных по сравнению с пользовательской моделью?

Ответы [ 3 ]

3 голосов
/ 25 ноября 2008

Я недавно начал проект, в котором я впервые решил использовать Core Data в реальных приложениях. Мое приложение на самом деле является версией 2.0 старого приложения, использующего пользовательскую модель данных, поэтому я потратил много времени на обсуждение этого вопроса. Вот некоторые из вещей, которые я задал себе.

  • Время, чтобы узнать, как Core Data работает в нетривиальном приложении, и исправить мелкие ошибки и особенности, возникающие при изучении новой технологии. Это может включать один или два прототипа, так как вы не хотите использовать что-то вроде Core Data, которое будет отвечать за большой кусок вашего приложения.

  • Будут ли базовые данные решать проблемы, которые трудно решить при использовании пользовательской модели данных, например, хранение и хранение в памяти очень больших наборов данных.

  • Хотите ли вы поделиться кодом с платформой, где Core Data недоступны, например, Cocoa Touch. В том же духе, если вы хотите, чтобы полученные файлы данных были совместимыми без необходимости создания отдельного экспортера.

  • Если изучение Core Data поможет вам улучшить себя как программисту, будь то повышение привлекательности для магазинов разработки для Mac или просто для собственного использования.

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

  • Если вы используете внешние библиотеки или другие технологии, такие как распределенные объекты, где вы можете не использовать NSManagedObject.

1 голос
/ 25 ноября 2008
  1. Вы по какой-то причине ориентируетесь на версию Mac OS X до 10.4 в качестве минимального требования? Если это так, то нет базовых данных для вас.
  2. Собираетесь ли вы позволить пользователю вручную заказывать вещи в списке? Если это так, то нет базовых данных для вас - это не позволяет упорядоченные отношения. (Предположительно, вы можете создать числовое свойство «sequence», по которому вы можете упорядочить, но сохранение этого соответствия звучит как огромная проблема.)
  3. Собираетесь ли вы работать с определенным форматом файла, как ваш родной формат? (Например, нативный формат TextEdit - RTF.) Если нет, то вы не будете использовать Core Data для хранения на диске, поэтому вы можете вообще не использовать его. (Вы могли бы , но я не уверен, что есть и другие причины.)
0 голосов
/ 08 апреля 2012

Kick:)

Для меня самый большой вопрос, который вам нужно задать себе: вы собираетесь хранить там важные данные (пользовательский контент) или данные, которые можно легко воспроизвести (контент, загруженный из Интернета). Если у вас есть первое (данные, созданные пользователем), я бы держался подальше от Core Data ASAP или удостоверился, что у вас есть план резервного копирования в вашем приложении.

Как только ошибки начинают появляться (и, поверьте мне, есть), например, при попытке перенести ваши данные в новую версию вашей объектной модели, вы застряли, полностью застряли! И если вы скажете своему клиенту: «Мне жаль, что я не могу создать новую версию вашего приложения, я жду, когда Apple предложит исправление», это не сработает в реальном мире. Официального способа доступа к базовым структурам или их понимания нет, поэтому, как только они начнут развиваться, вы будете сами по себе.

Это было сделано, больше туда не пойду!

мои 2 цента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...