在swift中解压缩文件
如何去迅速解压缩文件? 在Objective-C中,我使用了SSZipArchive,我喜欢它。 如下面的代码所示。 我怀疑,如果我决定保持SSZipArchive, 我将不得不桥接一个Objective-C文件到我的Swift文件。 有没有更新的第三方,或更好的Apple文档在Swift中解压文件?
NSString *zipPath = [self.globalFileStrucure stringByAppendingPathComponent:@"zipfile.zip"]; [data writeToFile:zipPath options:0 error:&error]; BOOL unZipped = 0; unZipped = [SSZipArchive unzipFileAtPath:zipPath toDestination:self.globalFileStrucure];
Swift 2(更新):
所以它适用于我没有错误:
- 在这里下载/克隆库: ssziparchive
- 将目录“SSZipArchive”复制到您的项目(拖放)并select“创build组”
-
将库包含到Project Swift-ObjC桥(xxxx-Bridge-Header.h)
#import“SSZipArchive.h”
-
链接库“libz.tbd” – iOS的一部分
(项目 – >构build阶段 – >与库链接二进制文件 – > +)
-
准备压缩/解压
如果您使用的是UIKit或AppKit,那么您已经在使用Swift-ObjC桥接器了。 不要担心,只要使用你认识和喜爱的图书馆!
let zipPath = globalFileStrucure.stringByAppendingPathComponent("zipfile.zip") data.writeToFile(zipPath, options: nil, error: &error) let unZipped = SSZipArchive.unzipFileAtPath(zipPath, toDestination: globalFileStrucure)
我发现WPZipArchive更容易使用和安装,使用Cocoapods。 任何有兴趣的人都可以阅读下面的指南:
1)从Mac应用程序/实用程序文件夹或Launchpad中打开Terminal.app
2)inputsudo gem update --system
到你的terminal,以确保你的Ruby是最新的
3)inputsudo gem install cocoapods
安装cocoapods(这个过程可能需要几分钟,只是等待显示完成)
4)inputpod setup
设置cocoapods(从这里开始,你不需要使用sudo
命令,只使用pod
)
5)启动Xcode并创build一个新的项目(如果你没有创build现有的项目)。 如果您创build了Xcode项目,请跳过此步骤。
6)退出Xcode程序。 是的,closures你的项目并退出Xcode程序
7)回到terminal,然后inputcd Path/To/Folder/Containing/YourProject
To / Folder / Containing / YourProject用你自己的目录pathreplace这个Path / To / Folder / Containing / YourProject
8)inputpod init
9)inputopen -a Xcode Podfile
Podfile使用Xcode程序打开podfile。 默认的Podfile如下所示:
platform :osx, '10.10' use_frameworks! target 'myprojectname' do pod 'WPZipArchive', '0.0.1' end
platform :osx, '10.10'
是指定最小部署目标,你可以更改为任何你喜欢的。
10)保存并closuresPodfile(也closuresXcode)
11)回到terminal并inputpod install
这是安装WPZipArchive,这将需要几分钟的时间。
12)你完成安装WPZipArchive。
启动Xcode项目:
重要说明 :从现在开始,您必须使用.xcworkspace NOT .xcodeproj启动您的Xcode项目
在ViewController.swift或任何.swift文件你想使用压缩或解压缩方法,只需添加像下面的导入WPZipArchive:
import Cocoa import WPZipArchive
要压缩文件,请调用像这样的方法:
WPZipArchive.createZipFileAtPath(zipPath, withContentsOfDirectory: sampleDataPath)
要解压文件,请调用如下所示的方法:
WPZipArchive.unzipFileAtPath(zipPath, toDestination: unzipPath)
这一切,它的工作,并易于实施。
享受压缩和解压缩
它跟随彼得Kreinz。
注意step2如下:
请将目录“SSZipArchive”复制到您的项目(拖放)时select“创build组”
@screenworker(Unome)询问了一些引用了libz框架的错误。 我遇到了类似的事情。 链接步骤产生了关于“_crc32”等“符号”的错误。 所有这些符号都可以在libz.tbd存根中find。
在这种情况下的问题是,我错误地将libz.tbd引用添加到testing目标,而不是为项目本身命名的目标。 这可以通过转到构build阶段显示进行检查:
- 在Project Navigator(左侧面板)中点击你的项目名称
- 在编辑器中,点击“Build Phases”选项卡。
- 在“构build阶段”屏幕中,在“项目导航器”旁边的窄栏中查找名为“目标”的列表
- 点击与您的项目相同的目标(例如myProject,而不是myProjectTest或myProjectUITest)
- 如果点击“Link Binary With Libraries”旁边的箭头,您应该看到库列表 – 应包含libz。