ZipZap — это библиотека ввода-вывода zip-файлов для iOS, macOS и tvOS.
ZIP-файл — идеальный контейнер для составных документов Objective-C. Zip-файлы широко используются и хорошо изучены. Вы можете случайным образом получить доступ к их частям. Формат хорошо сжимается и имеет обширную поддержку операционных систем и инструментов. Поэтому мы хотим сделать этот формат еще более простым выбором для вас. Таким образом, в библиотеке реализованы:
Простой в использовании интерфейс : общедоступный API предлагает всего два класса! Тем не менее, вы можете просматривать zip-файлы, используя знакомые коллекции и свойства NSArray . И вы можете архивировать, распаковывать и повторно архивировать zip-файлы с помощью знакомых классов NSData , NSStream и Image I/O.
Эффективная реализация . Мы оптимизировали чтение и запись zip-файлов, чтобы уменьшить нагрузку на виртуальную память и засорение файлов на диске. В зависимости от того, как организован составной документ, обновление одной записи может быть быстрее, чем запись тех же данных в отдельный файл.
Совместимость форматов файлов : поскольку ZipZap точно соответствует спецификации формата zip-файла, он работает с большинством инструментов zip для Mac, Linux и Windows.
Как независимый проект:
В Терминале запустите git clone https://github.com/pixelglow/ZipZap.git
.
В каталоге ZipZap откройте проект Xcode ZipZap.xcodeproj .
В проекте Xcode выберите из раскрывающегося списка схему ZipZap (iOS Framework) , ZipZap (статическая библиотека iOS) , ZipZap (macOS Framework) , ZipZap (статическая библиотека macOS) , ZipZap (tvOS Framework) или ZipZap (статическая библиотека tvOS). вниз.
Теперь вы можете создавать, тестировать (только для macOS) или анализировать с использованием выбранной схемы.
Встроенные библиотеки и тестовые примеры находятся в подкаталоге ~/Library/Developer/Xcode/DerivedData .
Как проект, интегрированный с вашим собственным рабочим пространством:
В Терминале запустите cd workspace
, затем git submodule add https://github.com/pixelglow/ZipZap.git
.
В рабочей области Xcode выберите пункт меню «Файл» > «Добавить файлы в рабочую область» , затем в каталоге ZipZap выберите проект Xcode ZipZap.xcodeproj .
В любой цели проекта, которая будет использовать ZipZap :
В разделе «Фазы сборки» > «Связать двоичный файл с библиотеками » добавьте соответствующий libZipZap.a и любую другую библиотеку, указанную в разделе «Требовать ссылку» ниже.
В разделе «Настройки сборки» > «Пути поиска» > «Пути поиска по заголовку» добавьте ../ZipZap .
Теперь вы можете создавать, тестировать или анализировать цели проекта.
Заголовок включает в себя:
#import
Чтение существующего zip-файла:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]ошибка: ноль]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"Размер первой записи в несжатом виде составляет %lu байт.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog(@"Данные первой записи: %@." , [firstArchiveEntry newDataWithError:nil]);
Запись нового zip-файла:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] options:@{ZZOpenOptionsCreateIfMissingKey: @YES} ошибка: ноль]; [новое обновление архиваЗаписи: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" compress:YESdataBlock:^(ошибка NSError**) { return [@"привет, мир" dataUsingEncoding:NSUTF8StringEncoding]; }] ] ошибка: ноль];
Обновление существующего zip-файла:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]ошибка: ноль]; [старое обновление архиваЗаписи: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@" Second.text" compress: YES dataBlock: ^ (ошибка NSError**) { return [@"пока, мир" dataUsingEncoding:NSUTF8StringEncoding]; }]]ошибка: ноль];
Расширенное использование: Рецепты
Ссылки на API: Ссылки
Сборка : Xcode 7 и более поздние версии.
Ссылка : Только системные библиотеки; сторонние библиотеки не нужны.
ApplicationServices.framework (macOS) или ImageIO.framework (iOS, tvOS)
Foundation.framework
libz.dylib
Запуск : macOS 10.11 (El Capitan), iOS 9.3 или tvOS 9.2 и более поздних версий.
Следуйте за нами в Твиттере: @pixelglow.
Поднимите вопрос о проблемах ZipZap.
ZipZap имеет лицензию BSD.
Совет с помощью ChangeTip.