Вопрос

Я создаю приложение для iPhone и пытаюсь выбрать одно из двух решений для постоянного магазина.

Основные данные, или Объекты SQLitePersistentObjects.По сути, все, что нужно моему приложению, - это способ сохранить массив объектов модели, а затем загрузить их снова для отображения в UITableView.В этом нет ничего слишком сложного.Core Data, похоже, имеет гораздо более высокую кривую обучения, чем простые в использовании SQLitePersistentObjects.Есть ли какие-либо очевидные преимущества использования Core Data вместо SQLitePersistentObjects в моем случае?

Это было полезно?

Решение

Смотрите этот вопрос.Мой ответ на этот вопрос также применим к вашему.

Core Data VS SQL Statement, какой из них является gd для разработки iphone?

Другие советы

Как автор постоянных объектов SQLite, я говорю:используйте Основные данные.

Я написал SQLPO, когда Core Data еще не существовал на телефоне.Хотя я горжусь тем, что я сделал с SQLPO, и даже несмотря на то, что мне нравятся некоторые аспекты его подхода лучше, чем Core Data (в частности, отсутствие необходимости поддерживать отдельные файлы классов и модель данных), движок, лежащий в основе Core Data, намного более зрелый и в него вложено гораздо больше инженерных часов.Вот почему я отказался от разработки SQLPO, когда Core Data перешел на iPhone SDK.

Я не проводил бенчмарки, но могу предположить, что при правильном использовании Core Data будет работать лучше почти во всех ситуациях с большим объемом.

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

Некоторая информация о моем опыте работы с SQLitePersistentObjects.

Приложение, изначально разработанное для iOS 3.x с использованием SQLPO, работает просто отлично.Простота в использовании и т.д.Сейчас я нахожусь в процессе переноса этого приложения на iOS 4, и все начало становиться странным.

Теперь я вижу повреждения базы данных с непредсказуемой скоростью.

Изучение кода SQLPO показывает, что существует только один оператор sqlite3_close, и он вызывается, когда база данных не может быть открыта.

Я планирую добавить метод для явного закрытия базы данных и вызвать это из моего приложения delegates terminate и для методов iOS4 didMovetoBackground.Может помочь избежать проблем с повреждением базы данных с помощью SQLPO.

Недавно мне пришлось принять такое же решение.Я хранил экземпляры простого объекта с парой свойств.Из своих исследований я понял, что использование Core Data поможет вам лучше управлять более сложными объектами с несколькими взаимосвязями.В итоге я использовал Core Data только потому, что хотел узнать о нем больше (но для простых объектов не было большой кривой обучения).

SQLitePersistentObjects, также известные как постоянные объекты SQLLite, - это совсем не то же самое, что выполнять прямой SQLite.Это ORM сам по себе.Я еще не использовал его, но я хотел исправить совершенно неправильный ответ, который дал предыдущий плакат.

И я серьезно подумываю об использовании, потому что Core Data - это сплошная боль.

Видишь: http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top