2012-01-19 3 views
0

У меня есть приложение, которое полагается на некоторые пары ключевых значений, где значение может измениться в точке в будущем из-за стороннего api. Приложение полезно только при подключении к Интернету, кстати. Если меняются какие-либо значения, я не хочу выпускать новую версию приложения - я бы предпочел, чтобы эти значения были извлечены из файла webservice/static xml на моем сервере. Если бы я столкнулся с ошибкой, мне нужно было бы только вытащить их.Как хранить данные удаленно в приложении iOS?

Есть ли стандартный способ сделать это, или я должен просто рулон самостоятельно?

EDIT: меня не интересует технология на стороне сервера - я думаю, что плоского файла будет достаточно. Меня интересует, какой формат должен иметь плоский файл и как его кэшировать в мое приложение, как только я получу ошибку.

+0

Интересное решение, которое я рассмотрю, спасибо. Но меня все еще интересует более базовое решение - будет только около 10 пар ключ/значение, которые вы видите – petenelson

ответ

0

я понял, что лучший способ для моего использования сценария:

Я настроить JSON-файл на S3, который требуется аутентификация. Затем я использовал AWS для Objective C для аутентификации, чтобы получить доступ к этому файлу.

Я решил, что мне нужно обновить локальную информацию, когда applicationDidBecomeActive в App Delegate. Затем я получил асинхронный json и на успех. Затем я проверил номер версии в json и, если устаревший, написал изменения в NSUSerDefaults (которые затем используются через приложение.) Если возникла ошибка при получении json-файла, я просто продолжал как я уже имел предыдущий набор NSUserDefaults, который выполнил бы эту работу, пока пользователь не включил приложение.

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

-1

Считаете ли вы использование iCloud? Он поддерживает пары ключевых значений. Больше информации здесь: http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/iCloud/iCloud.html

+0

Брайан - спасибо за ваш ответ, но это глобальные переменные для всех пользователей - я хочу их хранить только один раз – petenelson

0

попробуйте redis, высокопроизводительный магазин ключей. используемый некоторыми крупными игроками в облаках, такими как cloudfoundry. Посмотрите на http://redis.io/. Клиент Objective-c доступен по адресу http://redis.io/clients.

+0

Спасибо за ваш ответ, но мой вопрос больше касается клиентской стороны. На стороне сервера достаточно плоского файла – petenelson