Используйте архивы ZIP для хранения данных NSDocument

Я не думаю, что любой упомянул это все же. Изучение нового языка может быть забавой! Конечно, это - достаточно хорошая причина попробовать что-то новое.

5
задан Markus Müller-Simhofer 16 November 2009 в 09:33
поделиться

3 ответа

Если вы просто хотите создать zip-файл в своем формате (например, "mydoc.myextension" на самом деле является zip-файл), нет удобного встроенного механизма Cocoa для создания zip-архивов с кодом. Взгляните на этот проект Google Code: ziparchive Однако я не думаю, что файловая оболочка поможет в этом случае.

Поскольку вы процитировали iWork, я не владею iWork 09, но предыдущие версии использовали формат пакета (например, NSFileWrapper был бы идеальным), но заархивировали XML, который описывает структуру документа, сохраняя при этом вложения (например, встроенные носители, изображения и т. д.) в папке ресурсов, все в пакете. Я предполагаю, что они делают это, потому что XML может быть довольно большим для больших сложных документов, но сжимается очень хорошо, потому что это текст. Это приводит к общему уменьшению размера документа.

Если бы Apple действительно перешла к превращению всего документа в один большой zip-архив (что я нашел бы странным), они либо извлекали бы необходимые ресурсы во временную папку, либо загружали бы весь документ. вещь в память (шаг назад от их пакетного подхода, IMO). Эти соображения вам также необходимо принять во внимание.

5
ответ дан 14 December 2019 в 04:40
поделиться

Вы захотите взять данные из файловой оболочки и передать их в нечто вроде ziparchive .

1
ответ дан 14 December 2019 в 04:40
поделиться

Пьер-Оливье Латур написал расширение для NSData, которое имеет дело со сжатием zip. Вы можете получить его здесь: http://code.google.com/p/polkit/

1
ответ дан 14 December 2019 в 04:40
поделиться