three20 TTPhotoViewController, чтобы не кэшировать изображения - PullRequest
1 голос
/ 18 ноября 2011

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

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

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

1 Ответ

4 голосов
/ 20 ноября 2011

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

[TTURLCache sharedCache].disableDiskCache = YES;

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

http://yoururl.com/image.png

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

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

...