ZipZap es una biblioteca de E/S de archivos zip para iOS, macOS y tvOS.
El archivo zip es un contenedor ideal para documentos compuestos Objective-C. Los archivos zip se utilizan ampliamente y se comprenden bien. Puedes acceder aleatoriamente a sus partes. El formato se comprime decentemente y tiene un amplio soporte de herramientas y sistemas operativos. Por eso queremos que este formato sea una elección aún más fácil para usted. Así, la biblioteca presenta:
Interfaz fácil de usar : ¡la API pública ofrece solo dos clases! Sin embargo, puede buscar archivos zip utilizando colecciones y propiedades familiares de NSArray . Y puede comprimir, descomprimir y volver a comprimir archivos zip a través de las conocidas clases NSData , NSStream e Image I/O.
Implementación eficiente : hemos optimizado la lectura y escritura de archivos zip para reducir la presión de la memoria virtual y la destrucción de archivos en disco. Dependiendo de cómo esté organizado su documento compuesto, actualizar una sola entrada puede ser más rápido que escribir los mismos datos en un archivo separado.
Compatibilidad de formato de archivo : dado que ZipZap sigue de cerca la especificación del formato de archivo zip, funciona con la mayoría de las herramientas zip de Mac, Linux y Windows.
Como proyecto independiente:
En la Terminal, ejecute git clone https://github.com/pixelglow/ZipZap.git
.
Dentro del directorio ZipZap , abra el proyecto ZipZap.xcodeproj Xcode.
En el proyecto Xcode, seleccione el esquema ZipZap (iOS Framework) , ZipZap (iOS Static Library) , ZipZap (macOS Framework) , ZipZap (macOS Static Library) , ZipZap (tvOS Framework) o ZipZap (tvOS Static Library) del menú desplegable. abajo.
Ahora puede compilar, probar (solo macOS) o analizar con el esquema seleccionado.
Las bibliotecas creadas y los casos de prueba se encuentran en un subdirectorio de ~/Library/Developer/Xcode/DerivedData .
Como proyecto integrado con tu propio espacio de trabajo:
En la Terminal, ejecute cd workspace
y luego git submodule add https://github.com/pixelglow/ZipZap.git
.
En su espacio de trabajo de Xcode, elija el elemento de menú Archivo > Agregar archivos al "espacio de trabajo" , luego, dentro del directorio ZipZap, seleccione el proyecto ZipZap.xcodeproj Xcode.
En cualquier objetivo de proyecto que utilice ZipZap :
En Fases de compilación > Vincular binario con bibliotecas , agregue el libZipZap.a correspondiente y cualquier otra biblioteca enumerada en la sección Requerir vínculo a continuación.
En Configuración de compilación > Rutas de búsqueda > Rutas de búsqueda de encabezado , agregue ../ZipZap .
Ahora puede crear, probar o analizar esos objetivos del proyecto.
El encabezado incluye:
#importar
Leyendo un archivo zip existente:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"El tamaño sin comprimir de la primera entrada es %lu bytes.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog(@"Los datos de la primera entrada son: %@." , [firstArchiveEntry newDataWithError:nil]);
Escribiendo un nuevo archivo zip:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] opciones:@{ZZOpenOptionsCreateIfMissingKey: @YES} error:nil]; [nuevas entradas de actualización de archivo: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" compress:YESdataBlock:^(NSError** error) { return [@"hola, mundo" dataUsingEncoding:NSUTF8StringEncoding]; }] ]error:nulo];
Actualizar un archivo zip existente:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [Entradas de actualización del archivo antiguo: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@"segundo.texto" comprimir:SÍ bloque de datos:^(NSError** error) { return [@"adiós, mundo" dataUsingEncoding:NSUTF8StringEncoding]; }]]error:nulo];
Usos avanzados: Recetas
Referencias de API: Referencias
Compilación : Xcode 7 y posteriores.
Enlace : Sólo bibliotecas del sistema; no se necesitan bibliotecas de terceros.
ApplicationServices.framework (macOS) o ImageIO.framework (iOS, tvOS)
Fundación.marco
libz.dylib
Ejecutar : macOS 10.11 (El Capitan), iOS 9.3 o tvOS 9.2 y posteriores.
Síguenos en Twitter: @pixelglow.
Plantear un problema sobre problemas de ZipZap.
ZipZap tiene la licencia BSD.
Sugerencia con ChangeTip.