Кэширующее решение для приложения iPhone

То, что я создаю, — это просто приложение, которое извлекает данные через Интернет и отображает их в представлениях iOS. Данные представляют собой текст и, иногда, изображения/музыкальные файлы/фильмы.

Я хотел бы использовать какое-нибудь решение для кэширования мультимедиа. Что ему нужно сделать, так это:

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

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

Кто-нибудь знает библиотеку для этого в приложении для iPhone/iPad?


person kender    schedule 28.01.2011    source источник


Ответы (2)


ASIHttpRequest имеет параметр DownloadCache, который может вам подойти. Из их документации:

* You want to have access to the data when there is no internet connection and you can't download it again
* You want to download something only if it has changed since you last downloaded it
* The content you are working with will never change, so you only want to download it once

Это то, что я использовал в своем приложении для iPad, и оно работает очень хорошо.

person TALLBOY    schedule 28.01.2011

Вы можете попробовать использовать UIWebview для представления. Если я правильно понимаю, вы будете размещать свой контент на веб-сервере и просто хотите, чтобы устройство iOS извлекало контент из URL-адреса. Это и есть UIWebview. По сути, это программируемый доступ к Safari.

person Nungster    schedule 28.01.2011
comment
Хорошо, я получу данные в виде ответа json/xml, положу их на просмотры. В то время как, например, галерея создается списком URL-адресов в json, загруженным ранее, так что на самом деле это не работа в Интернете... - person kender; 28.01.2011