ZipZap เป็นไลบรารี I/O ไฟล์ zip สำหรับ iOS, macOS และ tvOS
ไฟล์ zip เป็นคอนเทนเนอร์ที่เหมาะสำหรับเอกสาร Objective-C แบบผสม ไฟล์ ZIP มีการใช้กันอย่างแพร่หลายและเป็นที่เข้าใจกันดี คุณสามารถสุ่มเข้าถึงชิ้นส่วนของพวกเขาได้ รูปแบบการบีบอัดอย่างเหมาะสมและมีระบบปฏิบัติการและการสนับสนุนเครื่องมือที่กว้างขวาง ดังนั้นเราจึงต้องการทำให้รูปแบบนี้เป็นตัวเลือกที่ง่ายยิ่งขึ้นสำหรับคุณ ดังนั้นคุณสมบัติของห้องสมุด:
อินเทอร์เฟซที่ใช้งานง่าย : API สาธารณะมีเพียงสองคลาสเท่านั้น! แต่คุณสามารถดูไฟล์ zip ได้โดยใช้คอลเลกชันและคุณสมบัติ NSArray ที่คุ้นเคย และคุณสามารถ zip, unzip และ rezip ไฟล์ zip ผ่านคลาส NSData , NSStream และ Image I/O ที่คุ้นเคย
การใช้งานที่มีประสิทธิภาพ : เราได้ปรับการอ่านและเขียนไฟล์ zip ให้เหมาะสมเพื่อลดความกดดันของหน่วยความจำเสมือนและการฟาดไฟล์ดิสก์ ขึ้นอยู่กับวิธีการจัดระเบียบเอกสารประกอบของคุณ การอัพเดตรายการเดียวอาจเร็วกว่าการเขียนข้อมูลเดียวกันลงในไฟล์แยกต่างหาก
ความเข้ากันได้ของรูปแบบไฟล์ : เนื่องจาก ZipZap เป็นไปตามข้อกำหนดรูปแบบไฟล์ zip อย่างใกล้ชิด จึงใช้งานได้กับเครื่องมือ zip ส่วนใหญ่ของ Mac, Linux และ Windows
เป็นโครงการอิสระ:
ใน Terminal ให้เรียกใช้ 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
เป็นโครงการที่รวมเข้ากับพื้นที่ทำงานของคุณเอง:
ใน Terminal ให้เรียกใช้ cd workspace
จากนั้น git submodule add https://github.com/pixelglow/ZipZap.git
ในพื้นที่ทำงาน Xcode ของคุณ ให้เลือกรายการเมนู ไฟล์ > เพิ่มไฟล์ไปยัง "พื้นที่ทำงาน" จากนั้นภายในไดเร็กทอรี ZipZap ให้เลือกโปรเจ็กต์ ZipZap.xcodeproj Xcode
ในเป้าหมายโครงการใด ๆ ที่จะใช้ ZipZap :
ใน Build Phases > Link Binary With Libraries ให้เพิ่ม libZipZap.a และไลบรารีอื่นๆ ที่เกี่ยวข้องซึ่งแสดงอยู่ในส่วน Require Link ด้านล่าง
ภายใต้ การตั้งค่าการสร้าง > เส้นทางการค้นหา > เส้นทางการค้นหาส่วนหัว ให้เพิ่ม ../ ZipZap
ตอนนี้คุณสามารถสร้าง ทดสอบ หรือวิเคราะห์เป้าหมายโครงการเหล่านั้นได้แล้ว
ส่วนหัวประกอบด้วย:
#นำเข้า
การอ่านไฟล์ zip ที่มีอยู่:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]ข้อผิดพลาด:ไม่มี]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"ขนาดที่ไม่มีการบีบอัดของรายการแรกคือ %lu ไบต์", (แบบยาวไม่ได้ลงชื่อ)firstArchiveEntry.uncompressedSize);NSLog(@"ข้อมูลของรายการแรกคือ: %@" , [firstArchiveEntry newDataWithError:ไม่มี]);
กำลังเขียนไฟล์ zip ใหม่:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] ตัวเลือก:@{ZZOpenOptionsCreateIfMissingKey : @YES} ข้อผิดพลาด:ไม่มี]; [newArchive updateรายการ: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" บีบอัด:YESdataBlock:^(ข้อผิดพลาด NSError**) { กลับ [@"สวัสดีชาวโลก" dataUsingEncoding:NSUTF8StringEncoding]; - ]ข้อผิดพลาด:ไม่มี];
การอัพเดตไฟล์ zip ที่มีอยู่:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]ข้อผิดพลาด:ไม่มี]; [oldArchive updateรายการ: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@"second.text" บีบอัด:YES dataBlock:^(ข้อผิดพลาด NSError**) { กลับ [@"ลาโลก" dataUsingEncoding:NSUTF8StringEncoding]; }]]ข้อผิดพลาด:ไม่มี];
การใช้งานขั้นสูง: สูตรอาหาร
การอ้างอิง API: การอ้างอิง
รุ่น : Xcode 7 และใหม่กว่า
ลิงค์ : เฉพาะไลบรารีระบบเท่านั้น ไม่จำเป็นต้องมีห้องสมุดบุคคลที่สาม
ApplicationServices.framework (macOS) หรือ ImageIO.framework (iOS, tvOS)
มูลนิธิ.กรอบ
libz.dylib
รัน : macOS 10.11 (El Capitan), iOS 9.3 หรือ tvOS 9.2 และใหม่กว่า
ติดตามเราได้ที่ Twitter: @pixelglow
แจ้งปัญหาเกี่ยวกับปัญหา ZipZap
ZipZap ได้รับใบอนุญาตพร้อมใบอนุญาต BSD
ทิปด้วย ChangeTip