Лучший способ хранения динамических данных в приложении для iOS из веб-службы - PullRequest
0 голосов
/ 07 августа 2011


Я хочу знать, как лучше всего хранить данные на iPhone с помощью веб-службы. Я хочу, чтобы информация сохранялась на устройстве, чтобы человеку не требовался доступ к веб-службе каждый раз, когда ему это нужно. В настоящее время информация невелика и содержит менее 150 записей. Записи могут обновляться время от времени, и будет добавлено несколько новых. Каков наилучший способ хранения данных?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Если вы используете ASIHTTPRequest для своей сети (а если вы еще этого не делаете, я не могу достаточно высоко петь его похвалы), вы обнаружите, что в нем есть встроенный слой кеша, который идеально подходит для подобных ситуаций.

Вы можете активировать его с помощью одной строки;

[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];

И у вас есть полный контроль над политикой кэширования и т. Д. - просто прочитайте документацию.

Другой простой подход, конечно, заключается в том, что ваш веб-сервис возвращает JSON или XML, просто чтобы сохранить ответ в локальном файле для хеша параметров запроса, а затем, когда вы снова запросите данные, вы сначала можно посмотреть, существует ли файл, и если он существует, вернуть эти данные, а не возвращаться на сайт. Вы также можете использовать свою собственную политику кэширования и т. Д.

С тех пор как я обнаружил, что ASIHTTPRequest имеет кеш, мне больше не нужно было накатывать свои собственные.

Я считаю, что использование coreData или sqllite3 просто излишне для 99% моих требований, и простой кэш работает очень хорошо.

1 голос
/ 07 августа 2011

Если данные реляционные, база данных Sqlite3 будет лучшим вариантом для хранения.

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

Это также лучший вариант с точки зрения масштабируемости, поскольку вы заявили, что «текущая информация невелика», создавая впечатление, что это только текущая ситуация, которая может быть подвергнута дальнейшим изменениям, вероятно, к большему количеству записей, добавляемых вовремя.

Sqite3 также дает вам больший контроль и лучшую производительность, чем, например, использование Core Data. Вот статья , объясняющая некоторые детали. Более того, если вы работаете через оболочку Objective-C, такую ​​как FMDB , вы получите все преимущества, не управляя сложностью самостоятельно.

...