Если у вас есть контроль над контентом, я бы порекомендовал сочетание как первого, так и третьего варианта. Если контент создан вами (например, уровни и т. Д.), Просто сохраните его на сервере, скачайте zip и сохраните его локально. Используйте CoreData для хранения Индекса о загруженных вами файлах, таких как путь к папке, в которой она хранится, и ее имя / происхождение / и т.д., но не необработанные данные. Считается, что базы данных не содержат огромное количество необработанного контента, а скорее содержат структурированные данные. И даже если они могут - Я не сделал бы этого.
По вашим соображениям:
- Дисковое пространство - это единственное ограничение, которое я знаю на iPad. Однако базы данных имеют тенденцию работать медленнее, если они становятся слишком большими. Если вы едва сканируете данные, используйте файловую систему напрямую - это может оказаться быстрее и дешевле.
- Индекс в CoreData может хранить все соответствующие данные. У вас будет очень простой и очень быстрый доступ. Открытие контента загрузит его из файловой системы, что быстро, дешево и не напрягает индекс.
- Зачем вы это делаете? Перенаправьте ваш WebView в файл: // URL будет иметь тот же эффект, не так ли?
- Должен ответить сейчас.
Если у вас нет контроля, используйте то же, что и выше, но загружайте каждый файл отдельно, как предложено в четвертом варианте. после распаковки оба чехла в основном одинаковы.
Пожалуйста, возвращайтесь, если у вас есть вопросы.