Предложение для получения данных с веб-сервера? - PullRequest
1 голос
/ 19 января 2010

У меня есть веб-сервер, который содержит список «интересных мест». Они «жестко запрограммированы» на веб-сервере и поддерживаются администратором на стороне сервера. Пользователи не могут ничего добавлять или удалять.

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

Я использую базовые данные и в моей модели есть сущность InterestingLocation. Цель состоит в том, чтобы получить данные с веб-сервера и сохранить их на устройстве с Core Data, чтобы они были доступны даже без подключения к Интернету.

Моя идея заключалась в том, чтобы использовать XML на стороне сервера и выводить «объекты» InterestingLocation в файл XML. Их всего около 100, поэтому не очень большие.

На стороне клиента (устройства), может быть, XML-RPC?

Был бы рад некоторым предложениям и дополнительной информации, где / как начать:)

Ответы [ 2 ]

4 голосов
/ 19 января 2010

Мой совет: будь проще. На стороне сервера используйте принципы RESTful , чтобы сделать интерфейс максимально простым.

Затем все, что вам нужно сделать в приложении для iPhone, это использовать NSURLConnection для получения URL. NSURLConnection - это очень хороший асинхронный способ загрузки файлов из удаленных мест.

После этого достаточно просто проанализировать XML или JSON и создать соответствующие объекты Core Data. Обычно я люблю выполнять операции импорта в отдельном контексте управляемого объекта в отдельном потоке. При сохранении контекста управляемого объекта используйте NSManagedObjectContextDidSaveNotification, чтобы объединить изменения с основным контекстом управляемого объекта.

1 голос
/ 19 января 2010

Какой у вас сервер? Если сервер основан на Java, я бы порекомендовал посмотреть на HessianKit Фредрика Олссона. Кодирование / декодирование в обычные типы Objective-C и вставка в NSArrays и NSDictionaries сделают работу более гладкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...