最近的项目中涉及到了将zip文件从服务上下载下来,然后解压使用。搜索了一下发现有一个压缩与解压zip文件的第三方“SSZipArchive”:https://github.com/ZipArchive/ZipArchive 是用C语言实现的,包装用于OC与swift.
一、在使用过程中遇到过几个坑:
- 导入头文件冲突,我在pch文件里面导入了一些OC的头文件,而SSZipArchive是由C语言实现的,所以报了很多的系统错误。解决办法:将pch里面的导入头文件代码放在
“#ifdef OBJC
//导入头文件
“#endif 里面”
或者删除里面导入头文件的代码,去具体需要的文件里面导入,有一点暴力哈。 - 我每一次下载的文件样式都是一样的,所以希望覆盖式的解压,一开始没有注意以为它只有解压方法:+ (BOOL)unzipFileAtPath:(NSString )path toDestination:(NSString )destination;
就自己去判定是否存在然后删除,后来去仔细的看源码才发现它是有带是否覆盖式解压的方法:+ (BOOL)unzipFileAtPath:(NSString )path toDestination:(NSString )destination overwrite:(BOOL)overwrite password:(NSString )password error:(NSError *)error;
当然它还有很多方法,包括带有代理方法,带有密码,带有完成后的block回调方法,
http://blog.csdn.net/zhengang007/article/details/51019479
这里有每一个方法的详细说明。
二、我的实现:
|
|
当然还得遵守协议:SSZipArchiveDelegate
以上就是我使用SSZipArchive的体会,欢迎各位指正。