Вопрос по ios, objective-c, xml – Старайтесь не загружать файл снова, если он не изменился

3

Мне нужно скачать файл XML, используя протокол HTTP, чтобы использовать его локально в приложении для iPhone. Иногда этот файл будет обновляться на сервере, но не очень часто.

Как сравнить уже загруженный файл, который уже находится в папке «Документы», с файлом на сервере, просто загрузить его, если содержимое было обновлено на сервере?

По имени или по дате пересмотра? CodaFi
По имени. Или по дате тоже будет эффективно? Winston
Какой протокол вы используете для загрузки файла? HTTP? rob mayoff
Да, я использую HTTP. Winston

Ваш Ответ

2   ответа
12

ета. Вы можете вытащить его изNSHTTPURLResponse объект.

При последующих запусках укажите эту дату вIf-Modified-Since заголовокNSURLRequest, Если файл на сервере не изменился,statusCode изNSHTTPURLResponse должно быть 304 (что означает & # x201C; Не изменено & # x201D;), а тело ответа должно быть пустым.

Error: User Rate Limit Exceeded Winston
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededLast-ModifiedError: User Rate Limit ExceededNSUserDefaultsError: User Rate Limit ExceededIf-Modified-SinceError: User Rate Limit Exceeded
Error: User Rate Limit Exceededsection 14 of the HTTP 1.1 specError: User Rate Limit Exceededsection 3.3.1.
Error: User Rate Limit Exceeded Winston
2

чтобы найти файл с определенным именем, используйте NSFileManager.-fileExistsAtPath:isDirectory и сравните его с именем загруженного файла (-suggestedFilename до тех пор, пока вы используете NSURLResponse) с-isEqualToString.

Если вам нужно получить дату пересмотра, используйте NSFileManager & s; s-attributesOfItemAtPath:error: в сочетании с ключом NSFileModificationDate.

Error: User Rate Limit Exceeded Winston
Error: User Rate Limit Exceeded

Похожие вопросы