Импортируйте XML, только если он был обновлен - PullRequest
0 голосов
/ 23 марта 2012

Я использую NSURLConnection, чтобы получить файл XML.Я анализирую XML-файл и затем использую его для заполнения Базовых данных.

Если NSURLConnection не может соединиться (т. Е. У пользователя нет подключения к Интернету), я просто читаю постоянные данные из Базовых данных.

Тем не менее, я думаю ... Есть ли способ, которым я могу проверить файл XML, чтобы увидеть, обновлялся ли он в последний раз, когда я его использовал?Таким образом, я могу сохранить повторную загрузку / повторное заполнение, если оно не изменилось?

Проверка последнего изменения файла или что-то еще?

У кого-нибудь есть хорошее решение для этого?

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Это можно сделать, проверив http-заголовки или etags.

0 голосов
/ 23 марта 2012

Пусть сервер добавит свое текущее системное время в файл XML в виде нового поля, например <timestamp>1332368408</timestamp>.Вам потребуется еще один вызов API сервера, чтобы проверить, был ли изменен этот конкретный файл, например http://<server>/xmlFileChangedSince/1332368408, возвращающий значение true или false, на основе последнего измененного файла, как вы предложили, или путем перезаписи поля <timestamp> каждый раз, когда файлмодифицирована.Если результат указанного выше http-запроса верен, то ваше приложение знает, что нужно загружать только что измененные данные.

Преимущество добавления поля <timestamp> в файл XML на стороне сервера состоит в том, что онопредотвращает необходимость синхронизации времени сервера и приложения, которые гарантированно не будут синхронизированы.Если вы не хотите добавлять поле к данным XML, вы можете установить временную метку данных на стороне приложения, основываясь на том, когда возвращается NSURLConnection, но если вы хотите, чтобы оно было абсолютно надежным, вам нужно синхронизировать приложение.и время сервера.Хотя это не особенно сложно, это раздражает.

...