Используйте CoreData или SQLite на iPhone? [закрытый]
поскольку CoreData стала доступна для iPhone в OS 3.0, это должно быть ответом на сохранение данных и заменить все потребности в direct SQLite
?
какие причины существуют, чтобы все еще использовать SQLite
? Каковы преимущества/недостатки SQLite
и CoreData
?
3 ответа:
Это общий вопрос здесь:
- "основные данные и SQLite для опытных разработчиков SQL"
- " основные данные против Sqlite и производительности..."
- "основные данные против sqlite3"
- " стоит ли использовать основные данные для простого приложения sqlite на iphone с одной таблицей и без связей или сложных подтаблиц / представлений?"
в итоге, основные данные могут значительно упростите свой код, особенно для сложных объектных моделей. Вы получаете поддержку отмены / повтора почти бесплатно. Он также обеспечивает некоторые очень значительные преимущества, особенно на iPhone. Несмотря на то, что это кажется нелогичным, учитывая, сколько накладных расходов, по вашему мнению, имеет фреймворк, в большинстве случаев вы можете превзойти производительность настроенного вручную SQLite с использованием основных данных. На iPhone он отлично справляется с пакетной выборкой, чтобы минимизировать память использование.
один недостаток, как уже отмечалось, заключается в том, что это ограничивает вас, требуя iPhone OS 3.0 для ваших конечных пользователей. Тем не менее, это не было проблемой для моих пользователей, и только станет меньше одного в будущем.
Это может быть меньшим преимуществом, но SQLite намного более переносим между платформами, так как основные данные являются частью Cocoa, а SQLite является чистым C. Это означает, что если вы хотите перенести свое приложение на ПК, например, у вас будет меньше кода для перезаписи в случае использования чистого SQLite.
тогда, если бы вы хотели разработать что-либо еще кросс-платформенное с использованием локальной БД (не обязательно связанной с любыми приложениями для iPhone), у вас уже был бы некоторый опыт работы с SQLite.
Если вы хотите, чтобы ваше приложение работало на iPhones, а не на OS 3.0, вам придется использовать SQLite.
однако использование CoreData (который использует SQLite в качестве бэкэнда, я считаю) означает, что вам не нужно писать свой собственный код взаимодействия с базой данных, что довольно сложно сделать, особенно когда вы делаете отношения и т. д.
Я сам использую CoreData...