SQLite Persistent Store как кеш - PullRequest
       3

SQLite Persistent Store как кеш

0 голосов
/ 12 октября 2011

У меня есть идея создать собственное постоянное хранилище, которое будет работать как кеш. То есть объекты, которые доступны из локального хранилища SQLite, будут извлечены из него, а объекты, которые недоступны, будут получены из сети и затем помещены в SQLite.

Проблема заключается в том, как связать это с механизмом Core Data, чтобы не требовалось никаких изменений в логике приложения. Хранилище для кеширования должно вести себя как постоянное хранилище. На данный момент моя идея заключается в расширении хранилища SQLite Persistent Store.

Итак, вопрос в том, с чего мне начать? :) Это нормальная идея или мое понимание базовых данных совершенно неверно, и подобные вещи не следует делать в респектабельном приложении? Кто-нибудь делал что-нибудь подобное раньше?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Помните, что в CoreData уже встроены существенные механизмы производительности и кэширования. При взаимодействии с контроллерами извлеченных результатов CoreData сбоит и автоматически заполняет объекты, выполняет внутреннее кэширование, а также возвращает объекты в пакетах, размер которых можно указать из.

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

0 голосов
/ 12 октября 2011

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

Один из вариантов помимо написания собственного кода - это restkit (restkit.org).

Со своей страницы:

Поддержка основных данных.Построенный поверх слоя отображения объектов, RestKit обеспечивает интеграцию с платформой Apple Core Data.Эта поддержка позволяет RestKit сохранять удаленно загруженные объекты непосредственно обратно в локальное хранилище либо в виде быстрого локального кэша, либо в качестве основного хранилища данных, которое периодически синхронизируется с облаком.RestKit может заполнить ассоциации Core Data для вас, позволяя естественное свойство на основе обхода вашей модели данных.Он также предоставляет хороший API поверх примитивов Core Data, который упрощает настройку и запрос вариантов использования.

...