ZipZap est une bibliothèque d'E/S de fichiers zip pour iOS, macOS et tvOS.
Le fichier zip est un conteneur idéal pour les documents composés Objective-C. Les fichiers Zip sont largement utilisés et bien compris. Vous pouvez accéder aléatoirement à leurs pièces. Le format se compresse correctement et dispose d'une prise en charge étendue du système d'exploitation et des outils. Nous souhaitons donc faire de ce format un choix encore plus simple pour vous. Ainsi, la bibliothèque propose :
Interface facile à utiliser : L'API publique ne propose que deux classes ! Pourtant, vous pouvez parcourir les fichiers zip en utilisant les collections et propriétés NSArray familières. Et vous pouvez compresser, décompresser et recompresser des fichiers zip via les classes familières NSData , NSStream et Image I/O.
Implémentation efficace : nous avons optimisé la lecture et l'écriture des fichiers zip pour réduire la pression de la mémoire virtuelle et la destruction des fichiers disque. Selon la façon dont votre document composé est organisé, la mise à jour d'une seule entrée peut être plus rapide que l'écriture des mêmes données dans un fichier distinct.
Compatibilité des formats de fichiers : Puisque ZipZap suit de près la spécification du format de fichier zip, il fonctionne avec la plupart des outils zip Mac, Linux et Windows.
En tant que projet indépendant :
Dans le terminal, exécutez git clone https://github.com/pixelglow/ZipZap.git
.
Dans le répertoire ZipZap , ouvrez le projet Xcode ZipZap.xcodeproj .
Dans le projet Xcode, sélectionnez le schéma ZipZap (iOS Framework) , ZipZap (iOS Static Library) , ZipZap (macOS Framework) , ZipZap (macOS Static Library) , ZipZap (tvOS Framework) ou ZipZap (tvOS Static Library) dans le menu déroulant. vers le bas.
Vous pouvez désormais créer, tester (macOS uniquement) ou analyser avec le schéma sélectionné.
Les bibliothèques construites et les cas de test se trouvent dans un sous-répertoire de ~/Library/Developer/Xcode/DerivedData .
En tant que projet intégré à votre propre espace de travail :
Dans le terminal, exécutez cd workspace
puis git submodule add https://github.com/pixelglow/ZipZap.git
.
Dans votre espace de travail Xcode, choisissez l'élément de menu Fichier > Ajouter des fichiers à « l'espace de travail » , puis dans le répertoire ZipZap, choisissez le projet Xcode ZipZap.xcodeproj .
Dans n'importe quelle cible de projet qui utilisera ZipZap :
Dans Build Phases > Link Binary With Libraries , ajoutez le libZipZap.a correspondant et toute autre bibliothèque répertoriée dans la section Exiger un lien ci-dessous.
Sous Build Settings > Search Paths > Header Search Paths , ajoutez ../ZipZap .
Vous pouvez désormais créer, tester ou analyser ces cibles de projet.
L'en-tête comprend :
#import
Lecture d'un fichier zip existant :
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog (@"La taille non compressée de la première entrée est de %lu octets.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog (@"Les données de la première entrée sont : %@." , [firstArchiveEntry newDataWithError:nil]);
Écrire un nouveau fichier zip :
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] options:@{ZZOpenOptionsCreateIfMissingKey : @YES} erreur:nil]; [newArchive updateEntries : @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" compress:YESdataBlock:^(erreur NSError**) { return [@"hello, world" dataUsingEncoding:NSUTF8StringEncoding]; }] ]erreur : nil] ;
Mise à jour d'un fichier zip existant :
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [oldArchive updateEntries : [tableau oldArchive.entriesByAddingObject : [ZZArchiveEntry archiveEntryWithFileName:@"second.text" compress:YES dataBlock:^(NSError** erreur) { return [@"au revoir, monde" dataUsingEncoding:NSUTF8StringEncoding]; }]]erreur : nil] ;
Utilisations avancées : Recettes
Références API : références
Version : Xcode 7 et versions ultérieures.
Lien : Uniquement les bibliothèques système ; aucune bibliothèque tierce n'est nécessaire.
ApplicationServices.framework (macOS) ou ImageIO.framework (iOS, tvOS)
Fondation.framework
libz.dylib
Exécuter : macOS 10.11 (El Capitan), iOS 9.3 ou tvOS 9.2 et versions ultérieures.
Suivez-nous sur Twitter : @pixelglow.
Soulever un problème sur les problèmes ZipZap.
ZipZap est sous licence BSD.
Astuce avec ChangeTip.