iPhone SDK - Добавление заархивированного содержания в ресурсах и затем разархивация в папку Documents

Это работало на меня в маленьком тесте:

sourceEncoding = "iso-8859-1"
targetEncoding = "utf-8"
source = open("source")
target = open("target", "w")

target.write(unicode(source.read(), sourceEncoding).encode(targetEncoding))
5
задан Mithin 23 September 2009 в 04:32
поделиться

3 ответа

На основании вашего комментария выше:

Причина, по которой я хочу добавить сжатый ресурс, потому что есть несколько файлы. Если я не сжимаю то я нужно перемещать файлы по отдельности. Больной также необходимо вести список файлов где-нибудь, чтобы я мог прочитать файл имя, а затем переместите их. я думал архивирование и разархивирование было проще Решение.

Вы можете добавить все файлы в папку в вашем пакете. Когда приложение запускается в первый раз, используйте быстрое перечисление для просмотра папки, и все, что он находит в этой папке, копируется в папку «Документы». Работа с папками внутри папок немного сложнее (возможно, добавить рекурсию). Таким образом, вам не нужно беспокоиться о zip или tar или хранить каталог с файлами для установки.

Просто поместите папку с файлами, которую вы хотите, в папку ресурсов Xcode и скажите ей импортировать как папку, а не как группу. Таким образом, файлы устанавливаются в ваши ресурсы внутри папки, а не как отдельные файлы повсюду.

РЕДАКТИРОВАТЬ:

Еще лучше, сделайте то, что я говорю о размещении всех файлов, которые вы хотите, в одной папке, добавьте в свой проект, но не как «Группу», а затем при первом запуске используйте:

[[NSFileManager defaultManager] copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error];

, и он скопирует весь ваш каталог из одного места в другое. ЛЕГКО!

6
ответ дан 18 December 2019 в 14:48
поделиться

Добавьте libz. dylib Framework для вашего проекта и включите Deusty's NSData категорию gzip , которая предоставит вам методы сжатия / распаковки.

4
ответ дан 18 December 2019 в 14:48
поделиться

Хотя это доступно с помощью libz.dylib, на самом деле в этом нет необходимости, поскольку он экономит вам мало места (если оно есть). Пакет вашего приложения уже сжат при передаче на телефон. Сжатие поверх сжатия обычно дает небольшое дополнительное сжатие.

Попробуйте сами. Вы можете обнаружить, что доставка вашего приложения с разархивированным содержимым может занимать столько же места, сколько и сжатое содержимое.

3
ответ дан 18 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: