У меня есть приложение, которое позволяет загружать "модули", которые могут расширить использование вашего приложения.
Когда пользователь загружает модуль, я извлекаю ZIP файл с сервера и извлекаю его в свою папку Caches. (Каждый из этих почтовых индексов может быть размером от 60 до 2 МБ).
К сожалению, доступны более 300 модулей, и многие пользователи загружают по меньшей мере 50-60 из них на свое устройство.
В последнее время у меня появилось много жалоб, что модули просто исчезают с пользовательского устройства, поэтому я провел некоторое расследование и наткнулся на следующую формулировку в документации Apple.
iOS удалит ваши файлы из каталога Caches, когда это необходимо, поэтому ваше приложение должно будет деградировать, если файлы данных будут удален.
А также следующую статью, объясняющую далее об этой ситуации: http://iphoneincubator.com/blog/data-management/local-file-storage-in-ios-5
Моя проблема в том, что у меня нет фактического способа унижения изящно, так как я не могу автоматически позволить пользователю загружать так много модулей. Это может занять часы в зависимости от подключения к Интернету и размера модулей.
Итак, у меня есть несколько вопросов:
- Кто-нибудь из вас когда-либо имел дело с подобной ситуацией, и если да, то как?
- Кто-нибудь знает, когда именно iOS чистит кеш? Что считается предупреждением о "низком пространстве"? Таким образом, я мог бы хотя бы дать пользователю предупреждение о том, что у него недостаточно места для установки нового модуля.
- Есть ли способ получить какое-то предупреждение перед очисткой папки Cache?
Это очень неприятный шаг от Apple, и я действительно не вижу выхода. Было бы очень приятно услышать от вас некоторые идеи.