ZipZap ist eine ZIP-Datei-I/O-Bibliothek für iOS, macOS und tvOS.
Die ZIP-Datei ist ein idealer Container für zusammengesetzte Objective-C-Dokumente. Zip-Dateien sind weit verbreitet und gut verstanden. Sie können zufällig auf ihre Teile zugreifen. Das Format lässt sich gut komprimieren und verfügt über umfangreiche Betriebssystem- und Tool-Unterstützung. Deshalb möchten wir Ihnen die Wahl dieses Formats noch einfacher machen. Somit verfügt die Bibliothek über:
Benutzerfreundliche Schnittstelle : Die öffentliche API bietet nur zwei Klassen! Dennoch können Sie ZIP-Dateien mit bekannten NSArray- Sammlungen und -Eigenschaften durchsuchen. Und Sie können Zip-Dateien über die bekannten NSData- , NSStream- und Image-I/O-Klassen komprimieren, entpacken und erneut komprimieren.
Effiziente Implementierung : Wir haben das Lesen und Schreiben von Zip-Dateien optimiert, um die Belastung des virtuellen Speichers und die Überlastung von Festplattendateien zu reduzieren. Je nachdem, wie Ihr zusammengesetztes Dokument organisiert ist, kann das Aktualisieren eines einzelnen Eintrags schneller sein als das Schreiben derselben Daten in eine separate Datei.
Dateiformatkompatibilität : Da ZipZap sich eng an die Spezifikation des Zip-Dateiformats hält, funktioniert es mit den meisten Zip-Tools für Mac, Linux und Windows.
Als eigenständiges Projekt:
Führen Sie im Terminal git clone https://github.com/pixelglow/ZipZap.git
aus.
Öffnen Sie im ZipZap- Verzeichnis das Xcode-Projekt ZipZap.xcodeproj .
Wählen Sie im Xcode-Projekt entweder das Schema ZipZap (iOS Framework) , ZipZap (iOS Static Library) , ZipZap (macOS Framework) , ZipZap (macOS Static Library) , ZipZap (tvOS Framework) oder ZipZap (tvOS Static Library) aus dem Drop aus runter.
Sie können nun mit dem ausgewählten Schema erstellen, testen (nur macOS) oder analysieren.
Die erstellten Bibliotheken und Testfälle befinden sich in einem Unterverzeichnis von ~/Library/Developer/Xcode/DerivedData .
Als in Ihren eigenen Arbeitsbereich integriertes Projekt:
Führen Sie im Terminal cd workspace
aus und git submodule add https://github.com/pixelglow/ZipZap.git
.
Wählen Sie in Ihrem Xcode-Arbeitsbereich den Menüpunkt „Datei“ > „Dateien zum „Arbeitsbereich“ hinzufügen“ und wählen Sie dann im ZipZap- Verzeichnis das Xcode-Projekt „ ZipZap.xcodeproj “ aus.
In jedem Projektziel, das ZipZap verwendet:
Fügen Sie unter Build-Phasen > Binärdatei mit Bibliotheken verknüpfen die entsprechende libZipZap.a und alle anderen Bibliotheken hinzu, die im Abschnitt „Link erforderlich“ unten aufgeführt sind.
Fügen Sie unter Build-Einstellungen > Suchpfade > Header-Suchpfade ../ZipZap hinzu.
Sie können diese Projektziele jetzt erstellen, testen oder analysieren.
Der Header enthält:
#import
Lesen einer vorhandenen ZIP-Datei:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"Die unkomprimierte Größe des ersten Eintrags beträgt %lu Bytes.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog(@"Die Daten des ersten Eintrags sind: %@." , [firstArchiveEntry newDataWithError:nil]);
Schreiben einer neuen ZIP-Datei:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] options:@{ZZOpenOptionsCreateIfMissingKey : @YES} error:nil]; [newArchive updateEntries: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" compress:YESdataBlock:^(NSError** Fehler) { return [@"hello, world" dataUsingEncoding:NSUTF8StringEncoding]; }] ]Fehler: Null];
Aktualisieren einer vorhandenen ZIP-Datei:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [oldArchive updateEntries: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@"second.text" compress:YES dataBlock:^(NSError** Fehler) { return [@"bye, world" dataUsingEncoding:NSUTF8StringEncoding]; }]]error:nil];
Erweiterte Anwendungen: Rezepte
API-Referenzen: Referenzen
Build : Xcode 7 und höher.
Link : Nur Systembibliotheken; Es sind keine Bibliotheken von Drittanbietern erforderlich.
ApplicationServices.framework (macOS) oder ImageIO.framework (iOS, tvOS)
Foundation.framework
libz.dylib
Ausführen : macOS 10.11 (El Capitan), iOS 9.3 oder tvOS 9.2 und höher.
Folgen Sie uns auf Twitter: @pixelglow.
Melden Sie ein Problem zu ZipZap-Problemen.
ZipZap ist mit der BSD-Lizenz lizenziert.
Tipp mit ChangeTip.