ZipZap adalah perpustakaan I/O file zip untuk iOS, macOS dan tvOS.
File zip adalah wadah ideal untuk dokumen gabungan Objective-C. File zip banyak digunakan dan dipahami dengan baik. Anda dapat mengakses bagiannya secara acak. Formatnya terkompresi dengan baik dan memiliki dukungan sistem operasi dan alat yang luas. Jadi kami ingin menjadikan format ini pilihan yang lebih mudah bagi Anda. Dengan demikian, fitur perpustakaan:
Antarmuka yang mudah digunakan : API publik hanya menawarkan dua kelas! Namun Anda dapat melihat file zip menggunakan koleksi dan properti NSArray yang sudah dikenal. Dan Anda dapat melakukan zip, unzip, dan rezip file zip melalui kelas NSData , NSStream , dan Image I/O yang sudah dikenal.
Implementasi yang efisien : Kami telah mengoptimalkan pembacaan dan penulisan file zip untuk mengurangi tekanan memori virtual dan penghancuran file disk. Bergantung pada bagaimana dokumen gabungan Anda diatur, memperbarui satu entri bisa lebih cepat daripada menulis data yang sama ke file terpisah.
Kompatibilitas format file : Karena ZipZap mengikuti spesifikasi format file zip, ia bekerja dengan sebagian besar alat zip Mac, Linux dan Windows.
Sebagai proyek independen:
Di Terminal, jalankan git clone https://github.com/pixelglow/ZipZap.git
.
Di dalam direktori ZipZap , buka proyek ZipZap.xcodeproj Xcode.
Dalam proyek Xcode, pilih skema ZipZap (iOS Framework) , ZipZap (iOS Static Library) , ZipZap (macOS Framework) , ZipZap (macOS Static Library) , ZipZap (tvOS Framework) atau ZipZap (tvOS Static Library) dari drop turun.
Anda sekarang dapat membangun, menguji (hanya macOS) atau menganalisis dengan skema yang dipilih.
Perpustakaan yang dibangun dan kasus pengujian berada dalam subdirektori ~/Library/Developer/Xcode/DerivedData .
Sebagai proyek yang terintegrasi dengan ruang kerja Anda sendiri:
Di Terminal, jalankan cd workspace
lalu git submodule add https://github.com/pixelglow/ZipZap.git
.
Di ruang kerja Xcode Anda, pilih item menu File > Tambahkan File ke "ruang kerja" , lalu di dalam direktori ZipZap pilih proyek Xcode ZipZap.xcodeproj .
Dalam target proyek apa pun yang akan menggunakan ZipZap :
Di Build Phases > Link Binary With Libraries , tambahkan libZipZap.a yang sesuai dan pustaka lain yang tercantum di bagian Memerlukan Tautan di bawah.
Di bawah Build Settings > Search Paths > Header Search Paths , tambahkan ../ZipZap .
Anda sekarang dapat membangun, menguji, atau menganalisis target proyek tersebut.
Tajuk meliputi:
#impor
Membaca file zip yang ada:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"Ukuran entri pertama yang tidak terkompresi adalah %lu byte.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog(@"Data entri pertama adalah: %@." , [firstArchiveEntry newDataWithError:nil]);
Menulis file zip baru:
ZZArchive* newArchive = [[alokasi ZZArchive] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] opsi:@{ZZOpenOptionsCreateIfMissingKey : @YES} error:nil]; [Pembaruan Arsip baruEntri: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" kompres: YESdataBlock:^(NSError** error) { kembali [@"halo, dunia" dataUsingEncoding:NSUTF8StringEncoding]; }] ]kesalahan:nihil];
Memperbarui file zip yang ada:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [entri pembaruan Arsip lama: [arsip lama.entri arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@"second.text" kompres: YA dataBlock:^(NSError** error) { kembali [@"selamat tinggal, dunia" dataUsingEncoding:NSUTF8StringEncoding]; }]]kesalahan:nihil];
Penggunaan tingkat lanjut: Resep
Referensi API: Referensi
Bangun : Xcode 7 dan yang lebih baru.
Tautan : Hanya perpustakaan sistem; tidak diperlukan perpustakaan pihak ketiga.
ApplicationServices.framework (macOS) atau ImageIO.framework (iOS, tvOS)
Fondasi.kerangka kerja
libz.dylib
Jalankan : macOS 10.11 (El Capitan), iOS 9.3 atau tvOS 9.2 dan lebih baru.
Ikuti kami di Twitter: @pixelglow.
Angkat isu tentang masalah ZipZap.
ZipZap dilisensikan dengan lisensi BSD.
Tip dengan ChangeTip.