Папка кэшей очищается (автоматически очищается/очищается )на iOS

У меня есть приложение, которое позволяет вам загружать «модули», которые могут расширить использование вашего приложения.
Когда пользователь загружает модуль, я получаю ZIP-файл с сервера и извлекаю его в папку Caches. (Каждый из этих почтовых индексов может иметь размер от 60 КБ до 2 МБ ).

К сожалению, доступно более 300 модулей, и многие пользователи загружают как минимум 50 -60 из них на свои устройства.

В последнее время я получил много жалоб на то, что модули просто исчезают с пользовательского устройства, поэтому я провел небольшое расследование и наткнулся на следующую формулировку в документации Apple.

iOS will delete your files from the Caches directory when necessary, so your app will need to degrade gracefully if it's data files are deleted.

А также следующую статью, объясняющую дальнейшую ситуацию: http://iphoneincubator.com/blog/data-management/local-file-storage-in-ios-5

Моя проблема в том, что у меня нет реального способа изящно деградировать , так как я не могу автоматически позволить пользователю загружать так много модулей. Это может занять несколько часов в зависимости от интернет-соединения и размера модулей.

Итак, у меня есть несколько вопросов:

  1. Приходилось ли кому-нибудь из вас сталкиваться с подобной ситуацией, и если да, то как?
  2. Кто-нибудь знает, когда именно iOS очищает кэш? Что считается предупреждением о нехватке места? Таким образом, я мог бы, по крайней мере, предупредить пользователя о том, что у него недостаточно места для установки нового модуля.
  3. Есть ли способ получить какое-то предупреждение перед очисткой папки Cache?

Это действительно разочаровывающий шаг со стороны Apple, и я не вижу выхода. Очень хотелось бы услышать некоторые идеи от вас.

12
задан CRABOLO 21 March 2015 в 12:02
поделиться