three20 TTPhotoViewController, чтобы не кэшировать изображения

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

Я также заметил ту же проблему с одним из TTTableStyledTextItem, который имеет URL-адрес изображения.

Так есть ли в любом случае очистить кэш или автоматически обновить, если целевое изображение изменилось?

1 ответ

Решение

Three20 использует внутренний кеш под названием TTURLCache, который поддерживает все виды кешей, включая ETag и тому подобное. Отключите кэш на диск вручную с помощью:

[TTURLCache sharedCache].disableDiskCache = YES;

Я бы не рекомендовал отключать кеш, и вместо этого вы должны посмотреть на заголовок http-кеша на ваших изображениях - Three20 по умолчанию соблюдает его. Один из способов, которым я рекомендую вам справиться с этим, - добавление фиктивного параметра к URL-адресам вашего изображения (при условии, что вы получаете URL-адрес изображения через какой-то API-интерфейс). затем просто добавьте к нему фиктивный номер версии. Каждый раз, когда версия изменяет ваше приложение, вы получите новую версию изображения. вместо:

http://yoururl.com/image.png

использование

http://yoururl.com/image.png?dummyversion=232

Другие вопросы по тегам