ZipZap عبارة عن مكتبة إدخال/إخراج للملفات المضغوطة لأنظمة iOS وmacOS وtvOS.
يعد الملف المضغوط حاوية مثالية لمستندات Objective-C المركبة. تُستخدم الملفات المضغوطة على نطاق واسع ومفهومة جيدًا. يمكنك الوصول بشكل عشوائي إلى أجزائها. يتم ضغط التنسيق بشكل لائق ويحتوي على دعم شامل لنظام التشغيل والأدوات. لذلك نريد أن نجعل هذا التنسيق خيارًا أسهل بالنسبة لك. وهكذا تتميز المكتبة بما يلي:
واجهة سهلة الاستخدام : تقدم واجهة برمجة التطبيقات العامة فئتين فقط! ومع ذلك، يمكنك البحث في الملفات المضغوطة باستخدام مجموعات وخصائص NSArray المألوفة. ويمكنك ضغط الملفات المضغوطة وفك ضغطها وإعادة ضغطها من خلال فئات NSData و NSStream وImage I/O المألوفة.
التنفيذ الفعال : لقد قمنا بتحسين قراءة الملفات المضغوطة وكتابتها لتقليل ضغط الذاكرة الافتراضية وتحطيم ملفات القرص. اعتمادًا على كيفية تنظيم مستندك المركب، يمكن أن يكون تحديث إدخال واحد أسرع من كتابة نفس البيانات في ملف منفصل.
توافق تنسيق الملف : نظرًا لأن ZipZap يتبع عن كثب مواصفات تنسيق الملف المضغوط، فهو يعمل مع معظم أدوات الضغط المضغوطة لنظام التشغيل Mac وLinux وWindows.
كمشروع مستقل:
في المحطة الطرفية، قم بتشغيل git clone https://github.com/pixelglow/ZipZap.git
.
ضمن دليل ZipZap ، افتح مشروع ZipZap.xcodeproj Xcode.
في مشروع Xcode، حدد إما ZipZap (iOS Framework) أو ZipZap (iOS Static Library) أو ZipZap (macOS Framework) أو ZipZap (macOS Static Library) أو ZipZap (tvOS Framework) أو ZipZap (tvOS Static Library) من القائمة المنسدلة تحت.
يمكنك الآن إنشاء أو اختبار (نظام التشغيل MacOS فقط) أو التحليل باستخدام المخطط المحدد.
المكتبات المبنية وحالات الاختبار موجودة في دليل فرعي لـ ~/Library/Developer/Xcode/DerivedData .
كمشروع متكامل مع مساحة العمل الخاصة بك:
في المحطة الطرفية، قم بتشغيل cd workspace
ثم git submodule add https://github.com/pixelglow/ZipZap.git
.
في مساحة عمل Xcode الخاصة بك، اختر عنصر القائمة File > Add Files to "workspace" ، ثم ضمن دليل ZipZap، اختر مشروع ZipZap.xcodeproj Xcode.
في أي هدف مشروع سيستخدم ZipZap :
في مراحل البناء > ربط الثنائي بالمكتبات ، أضف libZipZap.a المطابق وأي مكتبة أخرى مدرجة في قسم "يتطلب الارتباط" أدناه.
ضمن إعدادات البناء > مسارات البحث > مسارات بحث الرأس ، أضف ../ZipZap .
يمكنك الآن إنشاء أهداف المشروع هذه أو اختبارها أو تحليلها.
يتضمن الرأس ما يلي:
#import
قراءة ملف مضغوط موجود:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"الحجم غير المضغوط للإدخال الأول هو %lu بايت.", (غير موقع طويل)firstArchiveEntry.uncompressedSize);NSLog(@"بيانات الإدخال الأول هي: %@." , [firstArchiveEntry newDataWithError:nil]);
كتابة ملف مضغوط جديد:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] options:@{ZZOpenOptionsCreateIfMissingKey : @YES} error:nil]; [newArchive updateEntries: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" ضغط: YESdataBlock: ^ (خطأ NSError **) { return [@"hello, World" dataUsingEncoding:NSUTF8StringEncoding]; }] ]خطأ: لا شيء];
تحديث ملف مضغوط موجود:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [إدخالات تحديث الأرشيف القديم: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@" Second.text " ضغط: نعم dataBlock: ^ (خطأ NSError **) { return [@"وداعا أيها العالم" dataUsingEncoding:NSUTF8StringEncoding]; }]]خطأ: لا شيء];
الاستخدامات المتقدمة: وصفات
مراجع واجهة برمجة التطبيقات: المراجع
البناء : 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.