Я не думаю, что любой упомянул это все же. Изучение нового языка может быть забавой! Конечно, это - достаточно хорошая причина попробовать что-то новое.
Если вы просто хотите создать zip-файл в своем формате (например, "mydoc.myextension" на самом деле является zip-файл), нет удобного встроенного механизма Cocoa для создания zip-архивов с кодом. Взгляните на этот проект Google Code: ziparchive Однако я не думаю, что файловая оболочка поможет в этом случае.
Поскольку вы процитировали iWork, я не владею iWork 09, но предыдущие версии использовали формат пакета (например, NSFileWrapper был бы идеальным), но заархивировали XML, который описывает структуру документа, сохраняя при этом вложения (например, встроенные носители, изображения и т. д.) в папке ресурсов, все в пакете. Я предполагаю, что они делают это, потому что XML может быть довольно большим для больших сложных документов, но сжимается очень хорошо, потому что это текст. Это приводит к общему уменьшению размера документа.
Если бы Apple действительно перешла к превращению всего документа в один большой zip-архив (что я нашел бы странным), они либо извлекали бы необходимые ресурсы во временную папку, либо загружали бы весь документ. вещь в память (шаг назад от их пакетного подхода, IMO). Эти соображения вам также необходимо принять во внимание.
Вы захотите взять данные из файловой оболочки и передать их в нечто вроде ziparchive .
Пьер-Оливье Латур написал расширение для NSData, которое имеет дело со сжатием zip. Вы можете получить его здесь: http://code.google.com/p/polkit/