Использовать CoreData или SQLite на iPhone?

Поскольку CoreData стала доступна для iPhone в OS 3.0, она призвана стать ответом на постоянство данных и заменить всю потребность в прямом SQLite?

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

3 ответа

Решение

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

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

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

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

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

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

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

Я сам использую CoreData...

Другие вопросы по тегам