2009-08-23 2 views
47

Поскольку CoreData стал доступен для iPhone в ОС 3.0, это значит быть ответом на постоянство данных и заменить все нужное прямое SQLite?Использовать CoreData или SQLite на iPhone?

Какие существуют причины для использования SQLite? Каковы преимущества/недостатки SQLite против CoreData?

ответ

59

Это общий вопрос здесь:

В целом, Core Data может значительно упростить код, в частности, для комплекса объектных моделей. Вы получаете поддержку отменить/повторить почти бесплатно. Он также предоставляет некоторые очень важные performance benefits, особенно на iPhone. Несмотря на то, что это кажется противоречивым, учитывая, сколько накладных расходов вы считаете инфраструктурой, в большинстве случаев вы можете побить производительность настроенного вручную SQLite с использованием Core Data. На iPhone он отлично справляется с выборками для минимизации использования памяти.

Единственным недостатком, как указано, является то, что это ограничивает необходимость использования iPhone OS 3.0 для ваших конечных пользователей. Тем не менее, это не было проблемой для моих пользователей, и это будет только меньше.

+0

Странно, что они не всплывали в моем поиске. Возможно, мой поиск «coredata» сделал разницу. Следует ли удалить эту должность? – Hauke

2

Если вы хотите, чтобы ваше приложение запускалось на iPhone, не работающем под управлением ОС 3.0, вам придется использовать SQLite.

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

Я использую CoreData себя ...

11

Это может быть меньшим преимуществом, но SQLite намного более переносима между платформами, так как основные данными являются частью какао и SQLite является чистым C. Это означает, что если вы хотел перенести приложение на ПК, например, у вас было бы меньше кода для перезаписи в случае использования чистого SQLite.

Тогда, если вы хотите разработать что-либо еще кросс-платформу с использованием локальной базы данных (не обязательно связанной с любыми приложениями iPhone), у вас уже есть некоторый опыт работы с SQLite.

+2

Это то, что мне нравится ... У меня есть приложение для iPhone, которое я перехожу на Android, и структуры данных - это одна вещь, о которой мне не нужно беспокоиться в своем обучении. – AndyD273

Смежные вопросы