ZipZap 은 iOS, macOS 및 tvOS용 zip 파일 I/O 라이브러리입니다.
zip 파일은 복합 Objective-C 문서를 위한 이상적인 컨테이너입니다. Zip 파일은 널리 사용되고 잘 알려져 있습니다. 해당 부품에 무작위로 액세스할 수 있습니다. 형식은 적절하게 압축되며 광범위한 운영 체제 및 도구 지원을 제공합니다. 그래서 우리는 이 형식을 더욱 쉽게 선택할 수 있게 만들고 싶습니다. 따라서 라이브러리 기능은 다음과 같습니다.
사용하기 쉬운 인터페이스 : 공개 API는 단 두 가지 클래스만 제공합니다! 그러나 친숙한 NSArray 컬렉션 및 속성을 사용하여 zip 파일을 살펴볼 수 있습니다. 또한 친숙한 NSData , NSStream 및 Image I/O 클래스를 통해 zip 파일을 압축, 압축 해제 및 다시 압축할 수 있습니다.
효율적인 구현 : 가상 메모리 압박과 디스크 파일 스래싱을 줄이기 위해 zip 파일 읽기 및 쓰기를 최적화했습니다. 복합 문서의 구성 방식에 따라 단일 항목을 업데이트하는 것이 동일한 데이터를 별도의 파일에 쓰는 것보다 더 빠를 수 있습니다.
파일 형식 호환성 : ZipZap은 zip 파일 형식 사양을 밀접하게 따르므로 대부분의 Mac, Linux 및 Windows zip 도구에서 작동합니다.
독립 프로젝트로서:
터미널에서 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 작업 공간에서 파일 > "작업 공간"에 파일 추가 메뉴 항목을 선택한 다음 ZipZap 디렉터리 내에서 ZipZap.xcodeproj Xcode 프로젝트를 선택합니다.
ZipZap을 사용할 프로젝트 대상에서 다음을 수행합니다.
Build Phases > Link Binary With Libraries 에서 해당 libZipZap.a 및 아래 링크 필요 섹션에 나열된 다른 라이브러리를 추가합니다.
빌드 설정 > 검색 경로 > 헤더 검색 경로 아래에 ../ZipZap 을 추가합니다.
이제 해당 프로젝트 대상을 구축, 테스트 또는 분석할 수 있습니다.
헤더에는 다음이 포함됩니다.
#import
기존 zip 파일 읽기:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];NSLog(@"첫 번째 항목의 압축되지 않은 크기는 %lu바이트입니다.", (unsigned long)firstArchiveEntry.uncompressedSize);NSLog(@"첫 번째 항목의 데이터는 %@입니다." , [firstArchiveEntry newDataWithError:nil]);
새 zip 파일 작성:
ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"] options:@{ZZOpenOptionsCreateIfMissingKey : @YES} error:nil]; [newArchive 업데이트항목: @[ [ZZArchiveEntry archiveEntryWithFileName:@"first.text" 압축:YESdataBlock:^(NSError** 오류) { return [@"hello, world" dataUsingEncoding:NSUTF8StringEncoding]; }] ]오류:없음];
기존 zip 파일 업데이트:
ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]error:nil]; [oldArchive 업데이트항목: [oldArchive.entries arrayByAddingObject: [ZZArchiveEntry archiveEntryWithFileName:@"second.text" 압축:YES dataBlock:^(NSError** 오류) { return [@"안녕, 세계" 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 이상.
트위터(@pixelglow)에서 우리를 팔로우하세요.
ZipZap 문제에 대해 문제를 제기하세요.
ZipZap은 BSD 라이선스로 라이선스가 부여됩니다.
ChangeTip으로 팁을 제공합니다.